RE: PAR + tmpwatch = mess

[email protected] (Markus Jansen)
Newsgroups perl.par
Message-ID <[email protected]>
Hi,

sorry for being quite busy, and not contributing anything ...
to ease both the “correction after unpacking” and support for long-term server processes, it may be a good idea to provide a function which updates all timestamps in the program’s PAR cache
(including the canary file to an older value).
I would not recommend the canary mode as a default, unless we have found that it is reasonable to do so.
Hope to be able to contribute some code during summer.

Best regards,
                Markus

From: [email protected] [mailto:[email protected]] On Behalf Of Roderich Schupp
Sent: Tuesday, May 19, 2015 11:49 AM
To: Shawn Laffan
Cc: [email protected]; Markus Jansen
Subject: Re: PAR + tmpwatch = mess

On Tue, May 19, 2015 at 12:49 AM, Shawn Laffan <[email protected]<mailto:[email protected]>> wrote:
OK.  I'll change it to update the mtime after extraction, and create the canary file at extraction time (which is simpler in any case).


Note (this is mostly a reminder for myself, but other eyes are welcome):
There are places other than PAR::_extract_inc where files are written to the cache area:

  1.  files written in stage 1 of the bootstrap process: the custom Perl interpreter (extracted with the same name as the packed executable to make $0 work), the shared Perl library (if your Perl is built with one, always the case on Windows) and all non-system DLLs needed by them (libstdc++ etc, the list keeps growing with every release of Strawberry Perl)
  2.  files written in stage 1 of the boostrap process: essential Perl modules (basically anything transititively required by PAR and Archive::Zip); these are not in the appended zip and are extracted using mangled names
  3.  cache files for modules and DLLs contained in the zip; these are also extracted using mangled names
For each of the categories, one should

  *   either check if these are already automatically re-extracted when missing (might be the case for (3))
  *   or make sure that:

     *   their last modified timestamp is the time of extraction (probably true for (1) and (2), since there not extracted by Archive::Zip)
     *   they're re-extracted when we find that the canary file is missing

 Cheers, Roderich
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.