New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Still receiving error for perllocal.pod #510

Closed
miked63017 opened this Issue Aug 1, 2013 · 11 comments

Comments

Projects
None yet
4 participants
@miked63017
Contributor

miked63017 commented Aug 1, 2013

Hi, I am still receiving the perllocal.pod error even after your update. I am using version 0.4.42 and the cpan.rb contains:

  ::Dir.glob(File.join(staging_path, prefix, "lib*/perl/*/perllocal.pod")).each do |path|
    @logger.error("Removing useless file.",
                  :path => path.gsub(staging_path, ""))
    File.unlink(path)
  end

I briefly glanced at the code and was wondering if this would be better solved maybe naming it like perllocal.pod.new and then moving it post install? Whatever works would be awesome though. Please let me know if you need any testing, before or after the fact. Thanks.

BTW I changed the logger to error so I can see when it triggers.

@jordansissel

This comment has been minimized.

Owner

jordansissel commented Aug 1, 2013

You can see such messages with --verbose or --debug flag, btw, without having to change the code ;)

Can you show me a sample package list where this file is present? I'd love to fix this.

@miked63017

This comment has been minimized.

Contributor

miked63017 commented Aug 1, 2013

I was already in there checking it out with vim so I got a little crazy :)

So basically on a fresh install of eith CentOS5.5 or 6.3 (two versions we use here), I made the following packages using fpm -s cpan -t rpm $MODULENAME.
perl-File-Temp-0.2301-1.noarch.rpm
perl-IO-1.25-1.x86_64.rpm
perl-Net-STOMP-Client-2.1-1.noarch.rpm
perl-No-Worries-1.0-1.noarch.rpm

And after installing perl-File-Temp I could not install any of the others.

Also, kind of unrelated but I noticed that as a dependency for perl-Net-STOMP-Client, if you install by itself it lists perl-perl. Is this just something that is worked out once all other dependencies are met, I definitly have perl installed, or is it something weird specific to this module?

@hatt hatt referenced this issue Aug 2, 2013

Merged

General Perl fixes #513

@hatt

This comment has been minimized.

Contributor

hatt commented Aug 2, 2013

The perl-perl thing is a bug from the dependency name fixer. I added a switch statement to allow for further exceptions but the above pull request resolves this specific case.

@snobear

This comment has been minimized.

snobear commented Aug 5, 2013

I'm still getting this error with the latest fpm. The two perl modules in question are IO::String and IO::Compress::Base.

banjer@olive:~> ./fpm/bin/fpm --no-cpan-test --no-auto-depends --cpan-perl-lib-path /usr/local/perl-5.16.2/lib --cpan-cpanm-bin /usr/local/perl-5.16.2/bin/cpanm -s cpan -t rpm IO::String
--> Working on /tmp/package-cpan-build20130805-17169-7jwa9r/module {:level=>:error}
Configuring IO-String-1.08 ... OK {:level=>:error}
Building IO-String-1.08 ... OK {:level=>:error}
Successfully installed IO-String-1.08 {:level=>:error}
1 distribution installed {:level=>:error}
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created rpm {:path=>"perl-IO-String-1.08-1.noarch.rpm"}


banjer@olive:~> ./fpm/bin/fpm --no-cpan-test --no-auto-depends --cpan-perl-lib-path /usr/local/perl-5.16.2/lib --cpan-cpanm-bin /usr/local/perl-5.16.2/bin/cpanm -s cpan -t rpm IO::Compress::Base
--> Working on /tmp/package-cpan-build20130805-17337-1r9007j/module {:level=>:error}
Configuring IO-Compress-2.061 ... OK {:level=>:error}
==> Found dependencies: Compress::Raw::Bzip2, Compress::Raw::Zlib {:level=>:error}
--> Working on Compress::Raw::Bzip2 {:level=>:error}
Fetching http://www.cpan.org/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.061.tar.gz ... OK {:level=>:error}
Configuring Compress-Raw-Bzip2-2.061 ... OK {:level=>:error}
Building Compress-Raw-Bzip2-2.061 ... OK {:level=>:error}
Successfully installed Compress-Raw-Bzip2-2.061 (upgraded from 2.048) {:level=>:error}
--> Working on Compress::Raw::Zlib {:level=>:error}
Fetching http://www.cpan.org/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.061.tar.gz ... OK {:level=>:error}
Configuring Compress-Raw-Zlib-2.061 ... OK {:level=>:error}
Building Compress-Raw-Zlib-2.061 ... OK {:level=>:error}
Successfully installed Compress-Raw-Zlib-2.061 (upgraded from 2.048) {:level=>:error}
Building IO-Compress-2.061 ... OK {:level=>:error}
Successfully installed IO-Compress-2.061 {:level=>:error}
3 distributions installed {:level=>:error}
Up/Downgrade not needed. {:level=>:error}
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created rpm {:path=>"perl-IO-Compress-2.061-1.noarch.rpm"}

installation attempt:

banjer@olive:~> sudo rpm -ivh perl-IO-Compress-2.061-1.noarch.rpm
Preparing...                ########################################### [100%]
   1:perl-IO-Compress       ########################################### [100%]
banjer@olive:~> sudo rpm -ivh perl-IO-String-1.08-1.noarch.rpm
Preparing...                ########################################### [100%]
        file /usr/local/perl-5.16.2/lib/x86_64-linux-thread-multi/perllocal.pod from install of perl-IO-String-1.08-1.noarch conflicts with file from package perl-IO-Compress-2.061-1.noarch

This is on a CentOS 6.4 vm. FYI, I'm checking out the latest version of fpm with this (in case I'm doing it wrong):

banjer@olive:~> git clone git@github.com:jordansissel/fpm.git -b master

@miked63017 - you still having issues?

Thanks guys!

@hatt

This comment has been minimized.

Contributor

hatt commented Aug 6, 2013

You can see in the installation output that the path for the perllocal.pod file and the one in the code for removal are different. Maybe worth stat'ing or running find on the directory recursively to remove perllocal.pod (and anything else unnecessary) is an option?

jordansissel added a commit that referenced this issue Aug 6, 2013

@jordansissel

This comment has been minimized.

Owner

jordansissel commented Aug 6, 2013

marking this fixed; will be available in the next release (soon)

@snobear

This comment has been minimized.

snobear commented Aug 6, 2013

I tried deleting perllocal.pod, but still no luck

banjer@olive:~> sudo rpm -ivh perl-IO-Compress-2.061-1.noarch.rpm
Preparing...                ########################################### [100%]
   1:perl-IO-Compress       ########################################### [100%]

# delete that shiz
banjer@olive:~> find /usr/local/perl-5.16.2/ -name perlocal.prod -exec rm -rf {} \;

banjer@olive:~> sudo rpm -ivh perl-IO-String-1.08-1.noarch.rpm
Preparing...                ########################################### [100%]
        file /usr/local/perl-5.16.2/lib/x86_64-linux-thread-multi/perllocal.pod from install of perl-IO-String-1.08-1.noarch conflicts with file from package perl-IO-Compress-2.061-1.noarch

rpm still seems to know about it

banjer@olive:~> sudo rpm -ql perl-IO-Compress-2.061-1 | grep perllocal
/usr/local/perl-5.16.2/lib/x86_64-linux-thread-multi/perllocal.pod

These rpms were built with the fpm master I cloned yesterday with git clone git@github.com:jordansissel/fpm.git -b master.

@jordansissel

This comment has been minimized.

Owner

jordansissel commented Aug 6, 2013

can you include the output here of rpm -qlp perl-IO-String-1.08-1.noarch.rpm | grep perllocal ?

Are you certain you built it with fpm master? Can you show the output of git rev-parse HEAD ?

@jordansissel

This comment has been minimized.

Owner

jordansissel commented Aug 6, 2013

5f0d309 is the latest commit as of right now.

@snobear

This comment has been minimized.

snobear commented Aug 6, 2013

Nevermind, we're good on this. I did NOT have the latest fpm checkout. I had missed that particular commit by an hour or so :). Thanks again.

@jordansissel

This comment has been minimized.

Owner

jordansissel commented Aug 6, 2013

woohoo! Thanks for confirming :)

prof-milki pushed a commit to prof-milki/xpm that referenced this issue Dec 18, 2014

prof-milki pushed a commit to prof-milki/xpm that referenced this issue Dec 18, 2014

prof-milki pushed a commit to prof-milki/xpm that referenced this issue Dec 18, 2014

mathias.lafeldt
CPAN: Fix stripping of perllocal.pod if cpan_perl_lib_path is set
For example, if cpan_perl_lib_path is set to "/usr/share/perl5", all
packages created with fpm will contain this file:

    /usr/share/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod

The current code only works if cpan_perl_lib_path is undefined.

Also see jordansissel#443 and jordansissel#510.

prof-milki pushed a commit to prof-milki/xpm that referenced this issue Dec 27, 2014

prof-milki pushed a commit to prof-milki/xpm that referenced this issue Dec 27, 2014

prof-milki pushed a commit to prof-milki/xpm that referenced this issue Dec 27, 2014

CPAN: Fix stripping of perllocal.pod if cpan_perl_lib_path is set
For example, if cpan_perl_lib_path is set to "/usr/share/perl5", all
packages created with fpm will contain this file:

    /usr/share/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod

The current code only works if cpan_perl_lib_path is undefined.

Also see jordansissel#443 and jordansissel#510.

jordansissel added a commit that referenced this issue Apr 24, 2015

jordansissel pushed a commit that referenced this issue Apr 24, 2015

CPAN: Fix stripping of perllocal.pod if cpan_perl_lib_path is set
For example, if cpan_perl_lib_path is set to "/usr/share/perl5", all
packages created with fpm will contain this file:

    /usr/share/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod

The current code only works if cpan_perl_lib_path is undefined.

Also see #443 and #510.

jordansissel added a commit that referenced this issue Jun 20, 2016

jordansissel pushed a commit that referenced this issue Jun 20, 2016

CPAN: Fix stripping of perllocal.pod if cpan_perl_lib_path is set
For example, if cpan_perl_lib_path is set to "/usr/share/perl5", all
packages created with fpm will contain this file:

    /usr/share/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod

The current code only works if cpan_perl_lib_path is undefined.

Also see #443 and #510.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment