You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR prevents the fields `%post`, `%preun`, and `%postun` from being
written to the rpm SPEC unless they are specified in the dalec spec.
This is a short-term solution to the problem specified in #298. Please
see that issue for more details on the long-term solution. A short
summary of the problem follows:
What is happening is that the presence of the `%post`, `%preun`, or
`%postun` causes `/bin/sh` to be baked into the dependencies of the rpm.
This makes sense because a shell is needed to execute the postinstall
scripts, and would be needed to run pre- or post- uninstall scripts.
_without %post_:
```
$ rpm -q --requires /tmp/out/RPMS/x86_64/oras-v1.2.0-1.cm2.x86_64.rpm
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1
```
_with %post_:
```
$ rpm -q --requires /tmp/out/RPMS/x86_64/oras-v1.2.0-1.cm2.x86_64.rpm
/bin/sh
/bin/sh
/bin/sh
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1
```
The `bash` package supplies `/bin/sh`, and all of its dependencies are
installed into the container as well. So the distroless minimal image is
used, but it has a bunch of extra stuff installed.
Signed-off-by: Peter Engelbert <[email protected]>
0 commit comments