Thu Sep 24 03:28:03 2009: Request 18472 was acted upon. Transaction: Correspondence added by TJC Queue: PAR-Packer Subject: "parl foo.par script.pl ..." uses a cache area that doesn't depend on foo.par Broken in: 0.975, 0.982, 0.991 Severity: Normal Owner: SMUELLER Requestors: rsch...@cpan.org Status: open Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=18472 >
Ho ho ho. I just spent ages debugging /usr/bin/parl to arrive at this exact conclusion and came to CPAN to report it.. I attach a dirty patch that resolves it, but potentially breaks god- knows-what-else. Works for me..
diff --git a/myldr/mktmpdir.c b/myldr/mktmpdir.c index e15cc8b..6796a98 100644 --- a/myldr/mktmpdir.c +++ b/myldr/mktmpdir.c @@ -160,6 +160,14 @@ char *par_mktmpdir ( char **argv ) { if (progname == NULL) progname = argv[0]; + /* If running like /usr/bin/parl foo.par myscript.pl then argv[0] equals + * parl, and we don't want to base our checksum on that! Skip ahead one + * argument instead.. + */ + if (strstr(progname, "parl") && strstr(argv[1], ".par")) { + progname = argv[1]; + } + if ( !par_env_clean() && (f = open( progname, O_RDONLY | OPEN_O_BINARY ))) { lseek(f, -18, 2); read(f, buf, 6);