Mailinglist Archive: opensuse-packaging (190 mails)

< Previous Next >
[opensuse-packaging] python .pyc packaging
Via https://en.opensuse.org/openSUSE:Reproducible_Builds

I found that when we build python packages like python-amqp or
python-binplist

it contains a .pyc file for every .py file and for every build these
.pyc files differ, because they contain the timestamp of the
corresponding source file and for some source files this is the time of
build.

http://rb.zq1.de/compare.factory-20170208/python-amqp.html#content

http://rb.zq1.de/compare.factory-20170208/python-binplist.html#content


I was wondering how to best get those to build bit-by-bit identical rpms.

I assume, we want to keep the concept of .pyc files, since they provide
some performance gain (e.g. I measured 'openstack --help' taking only
1.5 seconds with .pyc files versus 2.5 seconds without (on another
machine it was 12 vs 13 seconds))

But why do we have to ship .pyc files as part of our binary rpms? They
waste disk space and bandwidth for our mirrors and users.
They could be created in a %post or %posttrans hook when installing the
rpm (or do they need special build deps?)
It might even be, that compiling them on the destination is faster than
transferring and unpacking the LZMA compressed version.


The less intrusive alternative approach would be to touch .py files to a
constant older date (e.g. $SOURCE_DATE_EPOCH if set) before generating
the .pyc files.

What do you think which way to go?

Ciao
Bernhard M.
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-packaging+owner@xxxxxxxxxxxx

< Previous Next >