On 2020-03-05 11:22:46, DBOOK wrote:
Show quoted text> On Thu Mar 05 03:31:08 2020, RSCHUPP wrote:
> FWIW, the distribution that ran into this problem is Mojolicious. It
> uses the path to modules to find its bundled resource files in several
> places.
The explicit use of __FILE__ in Mojo::Util is easily fixed.
The implicit use via "(caller)[1]" in Mojo::File is a bit trickier.
Does the attched patch help?
Cheers, Roderich
diff --git a/lib/PAR/Filter/PatchContent.pm b/lib/PAR/Filter/PatchContent.pm
index d261f03..c23fb66 100644
--- a/lib/PAR/Filter/PatchContent.pm
+++ b/lib/PAR/Filter/PatchContent.pm
@@ -30,6 +30,16 @@ sub PATCH_CONTENT () { +{
'File::Spec->catfile(dirname(__FILE__),' =>
'File::Spec->catfile($ENV{PAR_TEMP}, qw(inc lib MIME),',
],
+ 'Mojo/File.pm' => [
+ 'sub curfile { __PACKAGE__->new(Cwd::realpath((caller)[1])) }' =>
+ 'sub curfile { my $fn = (caller)[1];
+ $fn = catfile($ENV{PAR_TEMP}, qw(inc lib), $fn) unless file_name_is_absolute($fn);
+ return __PACKAGE__->new(Cwd::realpath($fn)) }',
+ ],
+ 'Mojo/Util.pm' => [
+ 'File::Spec->catfile(dirname(__FILE__),' =>
+ 'File::Spec->catfile($ENV{PAR_TEMP}, qw(inc lib Mojo),',
+ ],
'Mozilla/CA.pm' => [
'File::Spec->catfile(dirname(__FILE__), "CA", "cacert.pem")' =>
'File::Spec->catfile($ENV{PAR_TEMP}, qw(inc lib Mozilla CA cacert.pem))',