Perl autorequires failing for git-svn

Panu Matilainen pmatilai at laiskiainen.org
Thu Jan 16 14:08:51 UTC 2014


On 01/15/2014 11:17 AM, Jan Kaluža wrote:
> On 01/15/2014 08:28 AM, Panu Matilainen wrote:
>> On 01/15/2014 02:56 AM, Todd Zullinger wrote:
>>> Hi all,
>>>
>>> [I posted this to the packaging list a few days ago, but haven't gotten
>>> any responses, so I want to open this to a wider audience in the hope of
>>> getting some pointers to what I'm missing.]
>>>
>>> I'm trying to fix a problem with the git-svn package that causes it to
>>> not pull in the proper perl dependencies (filed as rhbz #1026760). (It's
>>> possible I've simply missed an important announcement, but I didn't spot
>>> anything in the guidelines.)
>>>
>>> It appears that the file package was changed from 5.11 in f19 to 5.14 in
>>> f20.  With this change, the git-svn script reports a different type and
>>> find-requires does not pass it to perl.req for processing.
>>>
>>> f19:
>>>
>>> <mock-chroot>[root at f20-64 /]# file --version
>>> file-5.11
>>> magic file from /etc/magic:/usr/share/misc/magic
>>>
>>> <mock-chroot>[root at f20-64 /]# file
>>> /builddir/build/BUILD/git-1.8.4.2/git-svn
>>> /builddir/build/BUILD/git-1.8.4.2/git-svn: Perl script, ASCII text
>>> executable
>>>
>>> <mock-chroot>[root at f20-64 /]# /usr/lib/rpm/find-requires <<<
>>> /builddir/build/BUILD/git-1.8.4.2/git-svn
>>>
>>> /usr/bin/perl
>>> perl >= 0:5.008
>>> perl(Carp)
>>> perl(Digest::MD5)
>>> perl(File::Basename)
>>> perl(File::Find)
>>> perl(File::Path)
>>> perl(File::Spec)
>>> perl(Getopt::Long)
>>> perl(Git)
>>> perl(Git::SVN)
>>> perl(Git::SVN::Editor)
>>> perl(Git::SVN::Fetcher)
>>> perl(Git::SVN::Log)
>>> perl(Git::SVN::Migration)
>>> perl(Git::SVN::Prompt)
>>> perl(Git::SVN::Ra)
>>> perl(Git::SVN::Utils)
>>> perl(IO::File)
>>> perl(IPC::Open3)
>>> perl(lib)
>>> perl(Memoize)
>>> perl(strict)
>>> perl(Term::ReadLine)
>>> perl(vars)
>>> perl(warnings)
>>>
>>> f20:
>>>
>>> <mock-chroot>[root at f20-64 /]# file --version
>>> file-5.14
>>> magic file from /etc/magic:/usr/share/misc/magic
>>>
>>> <mock-chroot>[root at f20-64 /]# file
>>> /builddir/build/BUILD/git-1.8.4.2/git-svn
>>> /builddir/build/BUILD/git-1.8.4.2/git-svn: Perl5 module source, ASCII
>>> text
>>>
>>> <mock-chroot>[root at f20-64 /]# /usr/lib/rpm/find-requires <<<
>>> /builddir/build/BUILD/git-1.8.4.2/git-svn
>>>
>>> This fails because find-requires only passes the file to perl.req if
>>> it's either a .pm file or it's in the script list, which is defined like
>>> this:
>>>
>>> scriptlist=`echo $filelist | xargs -r file | \
>>>             grep -E ":.* (commands|script)[, ]" | cut -d: -f1`
>>>
>>> This is where the change in the file commands output is causing trouble.
>>>
>>> Any help would be much appreciated.
>>
>> See https://bugzilla.redhat.com/show_bug.cgi?id=105159.
>>
>> Also FYI, /usr/lib/rpm/find-requires (or -provides) is not what's used
>> during rpmbuild unless specifically overridden to use that legacy
>> mechanism.
>
> Does that mean that my File test-suite based on /usr/lib/rpm/fileattrs
> is correct and that's the only way how RPM currently (by default) parses
> File's output? Are there more places I should be aware of and include
> into my test-suite?

fileattrs is the only place that really counts. The older 
find-requires/find-provides scripts haven't really been 
maintained/updated in years and only exist for backwards compatibility 
these days.

	-  Panu -


More information about the devel mailing list