[OmniOS-discuss] pkg verify failing on pyc files

Lauri Tirkkonen lotheac at iki.fi
Thu Oct 8 19:37:00 UTC 2015


On Thu, Oct 08 2015 18:56:51 +0100, Peter Tribble wrote:
> That's all correct. The packages appear to have been published using
> pkgsend -T so
> that the timestamps on the .py files are preserved, and they match the
> timestamps
> encoded into the packaged .pyc files..
> 
> Which makes me wonder even more why it's found it necessary to recompile
> the files, it's not the normal python version or source timestamp mismatch.

I think I found a clue for this. I checked an old box I've upgraded
through multiple releases and sure enough, .pyc files had been
regenerated after install for, among other things, the simplejson-26
package. I checked the timestamps for one such .py/.pyc pair:

    -rw-r--r--   1 root     bin         1036 Jul 22  2014 /usr/lib/python2.6/vendor-packages/simplejson/compat.py
    -rw-r--r--   1 root     root        2040 Apr  3  2015 /usr/lib/python2.6/vendor-packages/simplejson/compat.pyc

But this is strange - surely the package is newer than July 2014 on this
151014 box?

    % pkg list -Hv simplejson-26
    pkg://omnios/library/python-2/simplejson-26@3.6.5-0.151014:20150402T184431Z i--

Yes, yes it is, and it *was* built using pkgsend -T '*.py'. However,
the commit in omnios-build introducing that was authored on Mar 25 2015
(8cc8f3ef45d9c7d8ccdfda608d00599cd3890597). My theory is that if the
file content does not change, even if pkgsend -T is used to preserve the
timestamps, the file is not touched on update; would that help explain
what you're seeing?

-- 
Lauri Tirkkonen | lotheac @ IRCnet


More information about the OmniOS-discuss mailing list