On Mon Dec 5, 2022 at 21:52 +0100, Jitka Plesnikova wrote:
Could be the following file added to the package epel-rpm-macros (or
anything like this) for EPEL 9?
It could, but it might be better to include this in a subpackage of
epel-rpm-macros or as a separate perl-generators-epel component. We
could pull it in with (package-name-here if perl-generators). This won't
work in EPEL 7 which unfortunately doesn't support rich dependencies.
But I don't know how to do it for EPEL 7/8, because the above
file
doesn't work.
It ends with error [2]:
error: Couldn't exec perl-libs: No such file or directory
Do you have any idea if there is any other way how to provide
maintainers this functionality for EPEL 7/8?
Parametric macro dependency generators are not supported in EPEL 7 and
8's RPM versions. You can still implement this using a "regular"
dependency generator. This is also described in the RPM
documentation[1]. Instead of specifying %__perlcompat_requires() and
writing an RPM macro that accepts a path name as %1, you specify
`%__percompat_requires /path/to/executable`. That script receives a
newline separated list of paths as stdin and prints the generated
dependencies to stdout separated by newlines.
So perlcompat.attr could look something like
```
%__perlcompat_requires %{_rpmconfigdir}/perlcompat.req %{perl_version}
# %%__perlcompat_path can stay the same.
```
These are usually stored in %%{_rpmconfigdir}. %%{perl_version} is
passed to the script as an argument, because the script of course
doesn't have access to the RPM context. This can be any executable
written in any language, but it should be straightforward to do this in
shell.
[1]:
https://rpm-software-management.github.io/rpm/manual/dependency_generator...
--
Maxwell G (@gotmax23)
Pronouns: He/Him/His