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: [email protected]
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);