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);

Reply via email to