coreos / rpm-ostree

⚛📦 Hybrid image/package system with atomic upgrades and package layering
https://coreos.github.io/rpm-ostree
Other
857 stars 193 forks source link

error importing RPM package that writes to /etc #4165

Closed ab78908 closed 1 year ago

ab78908 commented 1 year ago

Host system details

]$ rpm-ostree status State: idle Deployments: ● testremote:fedora/rawhide/x86_64/silverblue Version: 38 (2022-11-22T23:02:08Z) Commit: c0dbc242ae8124af3d8879d2383c9d0350c1283ce151ef864c3d344983036bab

Expected vs actual behavior

Trying to install RPM package that sets some udev rules in /etc and getting following error: $rpm-ostree install pylon-6.1.1.19861-1.x86_64.rpm error: Importing package 'pylon': Analyzing /etc: Unsupported path; see https://github.com/projectatomic/rpm-ostree/issues/233

The referenced issue goes about problems when RPM writes into /opt that apparently have been resolved. But It is unclear why RPM is not allowed to write into /etc and how /etc is supposed to be populated then?

lucab commented 1 year ago

Thanks for the report. Default configuration files shipped under /etc should be automatically moved to /usr/etc, but there is likely something going wrong with this specific package. Could you maybe share the specfile and the resulting RPM file for this pylon package?

lucab commented 1 year ago

Ah, I think this is complaining about the /etc directory itself. I'm not sure why this should be a special behavior for this specific package, but indeed I think this is hitting a case which rpm-ostree is not handling properly. We generally translate /etc/* to /usr/etc/* but it seems we are not really handling the plain /etc case: https://github.com/coreos/rpm-ostree/blob/df478a093f611c4553acafafb953a1ee49814f8f/rust/src/utils.rs#L267-L276

I'm not sure if shipping /etc directly in the package will result in a file conflict with other packages down the road, but we should probably fix our own path translation logic to begin with.

ab78908 commented 1 year ago

Thanks for the quick response and the info. It could be that there is a problem with the package, it it an alien converted package from Basler Pylon camera driver .deb package. So I guess I will have to repackage this manually.