Bug 1572361
Summary: | nagios-plugins-perl does not list all functionality provided | ||
---|---|---|---|
Product: | [Fedora] Fedora EPEL | Reporter: | Steven Joerger <steven.joerger> |
Component: | nagios-plugins | Assignee: | Stephen John Smoogen <smooge> |
Status: | CLOSED CANTFIX | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | epel7 | CC: | almudena.montiel, athmanem, b.heden, carlos_barrera, dmikhalkovich, herrold, krzysztof.pawlowski, lemenkov, mark.fitch1, mjtrangoni, pkoro, ppisar, smooge, smooge, swilkerson |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2018-07-25 15:20:46 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Steven Joerger
2018-04-26 19:45:49 UTC
For additional comparison, from an EL6 host when running a "yum provides "perl(utils)" search: nagios-plugins-perl-2.2.1-4git.el6.x86_64 : Nagios plugins perl dep. Repo : epel Matched from: Other : perl(utils) This was done on purpose by the perl maintainers commit 77fc713491878bb3343b27173aa9c575201636e0 Author: Petr Písař <ppisar> Date: Tue Nov 14 17:11:56 2017 +0100 Do not provide private Perl modules The nagios-plugins-perl subpackage installs utils.pm into a private location that is not available for other Perl code without pointing to that location. Therefore the perl(utils) module should not be provided on RPM level. This patch removes the provide. Depending packages should require nagios-plugins-perl instead as is already implemented among nagios-plugins subpackages. Yes that makes sense and I've tried rebuilding my package several times with a require for nagios-plugins-perl. However something is still requiring perl(utils) and I cannot figure out where: rpm -qpR nagios-plugins-custom-1.0.0-201804262018.noarch.rpm /bin/bash /bin/sh /usr/bin/expect /usr/bin/perl bc nagios-common nagios-plugins-perl perl >= 0:5.006 perl(Carp) perl(Cwd) perl(Data::Dumper) perl(Digest::MD5) perl(English) perl(Exporter) perl(File::Basename) perl(File::Copy) perl(File::Find) perl(File::Spec) perl(File::Temp) perl(FindBin) perl(Getopt::Long) perl(IO::File) perl(IO::Socket::SSL) perl(IPC::Open2) perl(Nagios::Plugin) perl(Net::Ping) perl(POSIX) perl(Socket) perl(Sys::Hostname) perl(Time::HiRes) perl(Time::Local) perl(XML::Simple) perl(constant) perl(filetest) perl(lib) perl(strict) perl(utf8) perl(utils) perl(vars) perl(warnings) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 yum localinstall nagios-plugins-custom-1.0.0-201804262018.noarch.rpm <snip> Error: Package: nagios-plugins-custom-1.0.0-201804262018.noarch (/nagios-plugins-custom-1.0.0-201804262018.noarch) Requires: perl(utils) That looks like the perl dep finder sees that some plugin is requiring perl(utils) inside it. Without seeing the code I have no idea myself what it is. You will need to look through the code to find what is require utils *** Bug 1572518 has been marked as a duplicate of this bug. *** I am contacting the Fedora perl maintainers to find out what the solution needs to be for both the packages and their children. Packages that require perl(utils), that is not provided by anything, should filter out the dependency from RPM metadata using: %global __requires_exclude %{?__requires_exclude:%__requires_exclude}|}^perl\\(utils\\) This is how auto-generated dependencies are filtered in Fedora and EPEL-7. Older EPELs use different syntax/methods for filtering. See <https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering> for more details. *** Bug 1574886 has been marked as a duplicate of this bug. *** Because of the filtering requirements and the above fix from Petr, I am closing this as CANTFIX versus NOTABUG. How does Peter Pisar fixes that? So, I wont be able to update nagios plugins ever again as nobodoy will no longer "providing" perl(utils)? The only way I found to be able to update the system (I haven't tried reinstallation) is to manually do: rpm -Uvh --nodeps $(repoquery --location nagios-plugins-perl) But of course, this is a poor way to solving it. I would expect some definite solution. You need fix the package that requires 'perl(utils)'. Unfortunately you did not write what package it is. Thanks Almudena but when I tried what you say yum missed install many packages. (It just didn't install many of them) My scenario is that I use centreon-poller-centreon-engine and it seems to require that package. I have version 2.8.18 but when I try to update my centreon pacakage I cannot. Centreon official solution es that they do not support EPEL and I have to downgrade their repos (older nagios-plugins 1.4). That worked but I wish to use nagios plugins 2.2. Petr Pisar. how may I fix package? You need to obtain a source package for centreon-poller-centreon-engine, unpack it, insert the __requires_exclude line from comment #7 into the package's spec file and build the package using rpmbuild tool. That will produce a new binary centreon-poller-centreon-engine pacakge that won't contain the bogus 'perl(utils)' dependency. Thanks Petr, I'll think about it. Solution sure works, but I don't feel it's sustainable and I haven't found that source code available. The solution provided in comment #7 does not work for me. I have the following spec Summary: Nagios plugins outside nagios-plugins package Name: nagios-uam-plugins Version:1.1 [..] %prep %setup -q %build %global __requires_exclude %{?__requires_exclude:%__requires_exclude}|}^perl\\(utils\\) %install rm -rf $RPM_BUILD_ROOT %ifarch x86_64 BASEDIR=/usr/lib64/nagios/plugins %else BASEDIR=/usr/lib/nagios/plugins %endif mkdir -p $RPM_BUILD_ROOT/$BASEDIR install -m 0755 check_* $RPM_BUILD_ROOT/$BASEDIR ls $RPM_BUILD_ROOT/$BASEDIR/check* | grep -v *pyc> files.txt sed -i "s:$RPM_BUILD_ROOT/::" files.txt %clean rm -rf $RPM_BUILD_ROOT %files -f files.txt %defattr(-,root,root,-) %ifarch x86_64 /usr/lib64/nagios/plugins/*py[co] %else /usr/lib/nagios/plugins/*py[co] %endif %doc Then I build: rpmbuild -v -bb nagios-uam-plugins.spec. This is a excerpt of the output: [...] Processing files: nagios-uam-plugins-1.1-0 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /bin/bash /bin/sh /usr/bin/env /usr/bin/perl nagios-plugins perl perl(CGI) perl(Config::General) perl(DBI) perl(File::Basename) perl(Getopt::Long) perl(Getopt::Std) perl(LWP::Simple) perl(LWP::UserAgent) perl(Logger::NagiosConnect) perl(Nagios::Plugin) perl(Nagios::Plugin::Threshold) perl(Net::Domain) perl(Net::SNMP) perl(Pod::Usage) perl(Switch) perl(Sys::Hostname) perl(Time::HiRes) perl(Time::Local) perl(constant) perl(lib) perl(strict) perl(utils) perl(vars) perl(warnings) python [...] When I try to install, again: Error: Package: nagios-uam-plugins-1.1-0.x86_64 (site) Requires: perl(utils) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest Please, could you help me with this? I forgot to mention: this is done from EPEL 6 That's because EPEL 6 has a different rpm and a different way of filtering generated dependencies. See <https://fedoraproject.org/wiki/EPEL:Packaging_Autoprovides_and_Requires_Filtering> for EPEL 6 syntax. Thanks a lot Petr. Solved it by using the tag AutoReqProv: no *** Bug 1640810 has been marked as a duplicate of this bug. *** |