Bug 1539344

Summary: /usr/lib/rpm/perl.req can create bogus requirements
Product: Red Hat Enterprise Linux 7 Reporter: Sergio Basto <sergio>
Component: rpmAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED WONTFIX QA Contact: BaseOS QE Security Team <qe-baseos-security>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 7.4CC: pmoravco
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1677648 (view as bug list) Environment:
Last Closed: 2019-02-15 13:43:14 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:
Bug Depends On:    
Bug Blocks: 1677648    
Attachments:
Description Flags
dpkg-source.pl none

Description Sergio Basto 2018-01-28 04:12:03 UTC
Created attachment 1387081 [details]
dpkg-source.pl

Description of problem:

I found the solution on bug #58537 (yeah from 2002 )

file dpkg-1.18.24/scripts/dpkg-source.pl have the string [1]

[1] 
'Source format specific build and extract options are available;
may use --format with --help to see them.') . "\n",

and run :

ls -1 dpkg-source.pl | ./perl.req

results in requirement of:
perl(--format)


Version-Release number of selected component (if applicable):
rpm-build-4.11.3-25.el7.x86_64 (centos package) 

How reproducible:

build dpkg-1.18.24-4.fc28.src.rpm on epel7 using koji, copr or mock 


Actual results:
Provides: config(dpkg-dev) = 1.18.24-4.el7.centos 
(...) 
Requires: /usr/bin/perl perl(--format) perl(Cwd)

Expected results:
Provides: config(dpkg-dev) = 1.18.24-4.el7.centos 
(...) 
Requires: /usr/bin/perl perl(Cwd)

Additional info:
Since it is a parse error in text around the work use, simply change the string in source and requires start working correctly, it is a very corner case. 

Using /usr/lib/rpm/perl.req of perl-generators-1.10-2.fc26.noarch we don't have this problem 

Also is a solution copy "process_file" function from file of /usr/lib/rpm/perl.req in Fedora 26 and replace it in /usr/lib/rpm/perl.req of epel7

Comment 2 Sergio Basto 2018-01-28 22:40:02 UTC
Exemplify the error: 
mock -r epel-7-x86_64 --shell
<mock-chroot> sh-4.2# cd /builddir/build/BUILD/dpkg-1.18.24/scripts/
<mock-chroot> sh-4.2# echo dpkg-source.pl | /usr/lib/rpm/perl.req
perl(--format)
perl(Cwd)
perl(Dpkg)
perl(Dpkg::Arch)
perl(Dpkg::Changelog::Parse)
perl(Dpkg::Compression)
perl(Dpkg::Conf)
perl(Dpkg::Control::Fields)
perl(Dpkg::Control::Info)
perl(Dpkg::Control::Tests)
perl(Dpkg::Deps)
perl(Dpkg::ErrorHandling)
perl(Dpkg::Gettext)
perl(Dpkg::Index)
perl(Dpkg::Source::Package)
perl(Dpkg::Substvars)
perl(Dpkg::Util)
perl(Dpkg::Vars)
perl(Dpkg::Vendor)
perl(Dpkg::Version)
perl(File::Basename)
perl(File::Spec)
perl(strict)
perl(warnings)

Comment 5 Pavlina Moravcova Varekova 2019-02-15 13:43:14 UTC
Thank you for reporting the bug. Because of the current stage of RHEL 7 I will close it as WONTFIX.