Perl autorequires failing for git-svn

Jan Kalu┼ża jkaluza at redhat.com
Wed Jan 15 08:12:57 UTC 2014


On 01/15/2014 01: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`

Thanks for this part. I didn't know that. My test-suite for File checks 
only the regexp defined in /usr/lib/rpm/fileattrs, which is following in 
F20:

%__perl_magic		^.*[Pp]erl .*$

So when testing File-5.14 I didn't think this will cause problems to 
RPM. I can make File to return "Perl script" again, but I would rather 
stay consistent with upstream in the detection.

There's already bug about this: 
<https://bugzilla.redhat.com/show_bug.cgi?id=1051598>. I will open 
upstream bug for that.

> This is where the change in the file commands output is causing trouble.
>
> Any help would be much appreciated.
>
> Thanks!
>

Jan Kaluza



More information about the devel mailing list