summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-10-20 21:32:05 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-10-20 21:36:43 -0400
commit6731fc6ab891c3d6c4f762d54a45e79a4ae40dad (patch)
treecd06a3b453ce03957a0f8208592b928869106c4e
parent4e0b3d7f9f1c866d3520e8d7d3ea1f0d48820269 (diff)
downloadguix-6731fc6ab891c3d6c4f762d54a45e79a4ae40dad.tar.gz
gnu: python-2.7: Byte compile files with a single optimization level.
* gnu/packages/python.scm (python-2.7)[phases]{rebuild-bytecode}: Byte compile
using optimization level, -OO.  Provide the output directory as the source
argument to 'compileall', instead of looping over each individual source file.
-rw-r--r--gnu/packages/python.scm33
1 files changed, 16 insertions, 17 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 2e057a7a27..3414ad959b 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -229,14 +229,12 @@
                             "--with-system-ffi"
                             ""))))
              #t))
-         (add-before
-             'check 'pre-check
+         (add-before 'check 'pre-check
            (lambda _
              ;; 'Lib/test/test_site.py' needs a valid $HOME
              (setenv "HOME" (getcwd))
              #t))
-         (add-after
-             'unpack 'set-source-file-times-to-1980
+         (add-after 'unpack 'set-source-file-times-to-1980
            ;; XXX One of the tests uses a ZIP library to pack up some of the
            ;; source tree, and fails with "ZIP does not support timestamps
            ;; before 1980".  Work around this by setting the file times in the
@@ -280,19 +278,20 @@
                 (lambda (opt)
                   (format #t "Compiling with optimization level: ~a\n"
                           (if (null? opt) "none" (car opt)))
-                  (for-each (lambda (file)
-                              (apply invoke
-                                     `(,,(if (%current-target-system)
-                                             "python2"
-                                             '(string-append out "/bin/python"))
-                                       ,@opt
-                                       "-m" "compileall"
-                                       "-f" ; force rebuild
-                                       ;; Don't build lib2to3, because it contains Python 3 code.
-                                       "-x" "lib2to3/.*"
-                                       ,file)))
-                            (find-files out "\\.py$")))
-                (list '() '("-O") '("-OO")))
+                  (apply invoke
+                         `(,,(if (%current-target-system)
+                                 "python2"
+                                 '(string-append out "/bin/python"))
+                           ,@opt
+                           "-m" "compileall"
+                           "-f"         ; force rebuild
+                           ;; Don't build lib2to3, because it contains Python 3 code.
+                           "-x" "lib2to3/.*"
+                           ,out)))
+                ;; Python 2 has a single file extension (.pyo) for the chosen
+                ;; level of optimization, so it doesn't make sense to byte
+                ;; compile with more than one level.
+                (list '() '("-OO")))
                #t)))
          (add-after 'install 'move-tk-inter
            (lambda* (#:key outputs #:allow-other-keys)