https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_3
== Summary == See [[Changes/No_more_automagic_Python_bytecompilation]] and [[Changes/No_more_automagic_Python_bytecompilation_phase_2]]. Now, <code>%global _python_bytecompile_extra 1</code> won't be allowed anymore and raises an error with a link to this change. == Owner == * Name: [[User:lbalhar| Lumír Balhar]] * Email: lbal...@redhat.com == Detailed Description == See the [[Changes/No_more_automagic_Python_bytecompilation#Detailed_Description|Detailed Description of the previous Change Proposal]] and the [[Changes/No_more_automagic_Python_bytecompilation#Detailed_Description|Detailed Description of its phase 2]]. Currently, Fedora rawhide contains ~130 packages with `%global _python_bytecompile_extra 1` in their specfiles but surprisingly only 42 of them actually ship any .pyc files outside the standard location <code>/usr/lib(64)?/python[0-9]\.[0-9]+</code>. That might be caused by either of the following: * there is nothing to byte-compile — the statement is a leftover to be removed * The automagic bytecompilation uses <code>/usr/bin/python</code> by default (for historical reasons) but <code>/usr/bin/python</code> is not present in the buildroot by default. Our plan is to finish the announced removal of this automagic Python bytecompilation, remove it from packages where it's not necessary and fix it with <code>%py_byte_compile</code> for packages where it's needed. The [https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#manual-bytecompilation documentation] already contains the following paragraph: If you have *.py files outside of the /usr/lib(64)?/pythonX.Y/ directories and you require those files to be byte compiled (e.g. it’s an importable Python module) you MUST compile them explicitly using the %py_byte_compile macro. Note that not all Python files are importable Python modules; when in doubt, grep the sources for the appropriate import statement. so no changes have to be made there. === Affected packages === From 2020-05-20. bugzilla calamares ceph chromium cinnamon-screensaver edk2 eog-plugins fish fleet-commander-admin fleet-commander-client freecad gaupol gazebo gdb gedit gedit-latex gedit-plugins git-cola glusterfs gnome-code-assistance gnome-devel-docs grass gtk-doc gtranslator ibus ibus-anthy ibus-hangul ibus-libpinyin ibus-libzhuyin ibus-pinyin ibus-table ibus-typing-booster ibus-uniemoji insight kajongg kdevelop-python klatexformula libpeas libreoffice libsmbios libunity lirc lyx mate-menu mingw-glib2 mirrormanager2 odcs onboard otf2 paraview pcs php-opencloud-openstack pygobject2 pygtk2 python-cherrypy python-flask-silk python-genshi python-pycurl python-reportlab qpid-dispatch rhythmbox sems sigul soundconverter sugar sugar-abacus sugar-browse sugar-calculator sugar-castle sugar-chat sugar-clock sugar-colordeducto sugar-countries sugar-deducto sugar-distance sugar-finance sugar-flip sugar-flipsticks sugar-fototoon sugar-fractionbounce sugar-getiabooks sugar-imageviewer sugar-implode sugar-infoslicer sugar-jukebox sugar-kuku sugar-labyrinth sugar-locosugar sugar-log sugar-maze sugar-measure sugar-memorize sugar-moon sugar-nutrition sugar-paint sugar-physics sugar-pippy sugar-playgo sugar-portfolio sugar-pukllanapac sugar-read sugar-recall sugar-record sugar-ruler sugar-speak sugar-srilanka sugar-starchart sugar-stopwatch sugar-story sugar-terminal sugar-turtleart sugar-typing-turtle sugar-view-slides sugar-visualmatch sugar-words sugar-write sugar-xoeditor sugar-xoirc sugar-yupana synfigstudio system-config-repo system-switch-java system-switch-mail texlive totem transmageddon ufw-kde variety virt-manager vtk xed == Benefit to Fedora == More explicit specfiles when it comes to Python byte compilation. This change also supports the dropping of unversioned <code>%{__python}</code> macro. == Scope == * Proposal owners: Change the brp-python-bytecompile script and macros in redhat-rpm-config package, help with transforming the packages. See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/87 * Other developers: Maintainers of the mentioned python packages will have to change their packages to use explicit <code>%py_byte_compile</code> * Release engineering: No Release engineering work is needed for this change * Policies and guidelines: nothing to be changed * Trademark approval: not needed == Upgrade/compatibility impact == None expected. == How To Test == Build a package with <code>%global _python_bytecompile_extra 1</code>. The build should fail with an actionable error message. == User Experience == The users of this change are packagers. The new behavior should make byte-compilation more obvious, explicit, and discoverable. Users of Fedora should not feel this (except if this change uncovers a packaging bug). == Contingency Plan == * Contingency mechanism: revert the changes in redhat-rpm-config * Contingency deadline: none (not a System Wide Change) * Blocks release? no (not a System Wide Change) * Blocks product? no == Documentation == The guidelines already contain up-to-date documentation. == Release Notes == This change does not deserve Release Notes, it is not user-facing. -- Ben Cotton He / Him / His Senior Program Manager, Fedora & CentOS Stream Red Hat TZ=America/Indiana/Indianapolis _______________________________________________ devel-announce mailing list -- devel-announce@lists.fedoraproject.org To unsubscribe send an email to devel-announce-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org