commit:     7a9b4f552e4c93525ab8d3a353bf8c4c1aee5537
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 23 08:26:41 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug 12 17:04:19 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a9b4f55

python-utils-r1.eclass: Enable hardlinking of identical pyc files for py3.9+

Python 3.9 includes a new feature for compileall to automatically hardlink
different optimization level cache files if they are identical. Make use of it
for python_optimize for some space savings.
This however does not cover distutils use cases and python itself.

Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 eclass/python-utils-r1.eclass | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index b104b6694ac..ddd1a25e6de 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -601,12 +601,15 @@ python_optimize() {
                                "${PYTHON}" -m compileall -q -f -d 
"${instpath}" "${d}"
                                "${PYTHON}" -OO -m compileall -q -f -d 
"${instpath}" "${d}"
                                ;;
-                       python*|pypy3)
+                       python3.[5678]|pypy3)
                                # both levels of optimization are separate 
since 3.5
                                "${PYTHON}" -m compileall -q -f -d 
"${instpath}" "${d}"
                                "${PYTHON}" -O -m compileall -q -f -d 
"${instpath}" "${d}"
                                "${PYTHON}" -OO -m compileall -q -f -d 
"${instpath}" "${d}"
                                ;;
+                       python*)
+                               "${PYTHON}" -m compileall -o 0 -o 1 -o 2 
--hardlink-dupes -q -f -d "${instpath}" "${d}"
+                               ;;
                        *)
                                "${PYTHON}" -m compileall -q -f -d 
"${instpath}" "${d}"
                                ;;

Reply via email to