Skip to content
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

1.048 not compiled on linux #15

Closed
zdm opened this issue May 1, 2019 · 9 comments

Comments

@zdm
Copy link

@zdm zdm commented May 1, 2019

"/usr/perlbrew/perls/perl-5.28.2/bin/perl" -Mblib=.. run_with_inc.pl ./par -q -B -Oparldyn
Can't locate Digest/SHA.pm in @INC (you may need to install the Digest::SHA module) (@INC contains: /mnt/hgfs/projects/pcore-lib/pcore/lib /tmp/.cpanm/work/1556682277.52386/PAR-Packer-1.048/lib/site_perl/5.28.2/x86_64-linux-ld /tmp/.cpanm/work/1556682277.52386/PAR-Packer-1.048/lib/site_perl/5.28.2 /tmp/.cpanm/work/1556682277.52386/PAR-Packer-1.048/lib/5.28.2/x86_64-linux-ld /tmp/.cpanm/work/1556682277.52386/PAR-Packer-1.048/lib/5.28.2 .) at -e line 474.
system(./par -I../blib/arch -I../blib/lib -I/mnt/hgfs/projects/pcore-lib/pcore/lib -I/usr/perlbrew/perls/perl-5.28.2/lib/site_perl/5.28.2/x86_64-linux-ld -I/usr/perlbrew/perls/perl-5.28.2/lib/site_perl/5.28.2 -I/usr/perlbrew/perls/perl-5.28.2/lib/5.28.2/x86_64-linux-ld -I/usr/perlbrew/perls/perl-5.28.2/lib/5.28.2 -I. -q -B -Oparldyn) failed:
make[1]: *** [Makefile:908: parldyn] Error 2
make[1]: Leaving directory '/tmp/.cpanm/work/1556682277.52386/PAR-Packer-1.048/myldr'
make: *** [Makefile:542: subdirs] Error 2
FAIL
! Installing R/RS/RSCHUPP/PAR-Packer-1.048.tar.gz failed. See /tmp/.cpanm/work/1556682277.52386/build.log for details. Retry with --force to force install it.

Seems, that it removes perl locations from @inc.

@rschupp

This comment has been minimized.

Copy link
Owner

@rschupp rschupp commented May 1, 2019

I can't reproduce that (and CPAN Testers can't either)

@zdm

This comment has been minimized.

Copy link
Author

@zdm zdm commented May 15, 2019

Hi, could you, please, do something or revert latest changes?
It is simply not installed.

@rschupp

This comment has been minimized.

Copy link
Owner

@rschupp rschupp commented May 15, 2019

There's almost no information in your issue to start diagnosing the problem.

  • Where did /usr/perlbrew/perls/perl-5.28.2 come from?

  • Please show the output of /usr/perlbrew/perls/perl-5.28.2 -V

  • Please run cpanm -v PAR::Packer (in this Perlbrew environment) and attach the complete output.

@zdm

This comment has been minimized.

Copy link
Author

@zdm zdm commented May 16, 2019

hi, please, look at attached logs.
1.txt
2.txt

@rschupp

This comment has been minimized.

Copy link
Owner

@rschupp rschupp commented May 16, 2019

Here's the problem:

config_args='-des -Dusemorebits -Duselargefiles -Dprefix=/usr/perlbrew/perls/perl-5.28.2 -Dusere locatableinc -Dman1dir=none -Dman3dir=none'

i.e. /usr/perlbrew/perls/perl-5.28.2 is a "relocatable" Perl interpreter: if it's installed into directory
foo it's default @INC will be foo/../lib/5.28.2, foo/../lib/site_perl/5.28.2 etc
That makes myldr/par a relocatable Perl interpreter, too (and you can recognize that from the @INC shown in the error message).

This has come up before with "portable" editions of Strawberry Perl. IIRC my conclusion then was that require Digest::SHA didn't work there, too, but previously that was hidden as it was inside `eval { ... }'.
I'll do some experiments...

@zdm

This comment has been minimized.

Copy link
Author

@zdm zdm commented May 16, 2019

rschupp added a commit that referenced this issue May 16, 2019
If the perl used to build PAR::Packer is a relocatable perl,
i.e. it was build with -Duserelocatableinc, then myldr/par will
also be relocatable.
The automagical default @inc for a irelocatable perl installed
in directory foo is something like
("foo/../lib/5.28.2", "foo/../lib/site_perl/5.28.2", ...). Hence,
for myldr/par the default @inc won't find anything. Running
myldr/par via run_with_inc.pl should correct that (as it
calls myldr/par with "-I dir" for every dir in the building perl's @inc).
But "require Digest::SHA1" is called from _set_par_temp()
which is called *before* @argv is processed. Fall back to use
the modification time of the program (instead of its SHA1 digest)
for the name of cache directory.
@rschupp

This comment has been minimized.

Copy link
Owner

@rschupp rschupp commented May 16, 2019

Can you try current HEAD?

@zdm

This comment has been minimized.

Copy link
Author

@zdm zdm commented May 16, 2019

Current HEAD compiled without errors.

@rschupp

This comment has been minimized.

Copy link
Owner

@rschupp rschupp commented May 18, 2019

Thx for testing

@rschupp rschupp closed this May 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.