On 16/05/17 22:28, Eli Schwartz wrote:
On 05/15/2017 08:51 PM, Allan McRae wrote:
Given I think python packages are the primary problem here, I'm going to propose another solution.... Clearly embedding the timestamp in the pyc/o files is a design decision and not going to be changed. Could we however, have a pass in makepkg that generates these files? In the "tidy" loop. That would allow us to set times on the any .py files in the package, and then generate pyc/o files. No setting of source times needed.
Allan
As I said on IRC, this is easier said than done. We'd have to somehow figure out which files are python2 and which ones are python3; while most will be in the appropriate /usr/lib/python$ver directory, some will be elsewhere, e.g. Sigil installs python3 files used for its private plugin interface under /usr/share/sigil instead.
Cinnamon seems to do the same (not that we ship pyc/pyo for any of that), as does bleachbit, but I am not sure why (since its launcher executable apparently claims either that or site-packages are both expected places to find itself???) but whatever, different topic.
Reading the shebang could help cover those cases, but then again, not all python modules actually come with shebangs, probably because the author doesn't expect people to care. "Why do you need them, syntax highlighting is okay because .py and you're not running them, you're importing them."
Other options... 1) We could actually use makepkg-template and have the python package provide a function to do this. 2) We could follow most other distros have have the pyo/c files generated by a hook (I am not a fan due to having more untracked files...) Allan