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