]> granicus.if.org Git - python/commitdiff
Issue #15822: Fix installation of lib2to3 grammar pickles to ensure
authorNed Deily <nad@acm.org>
Sun, 9 Sep 2012 02:04:47 +0000 (19:04 -0700)
committerNed Deily <nad@acm.org>
Sun, 9 Sep 2012 02:04:47 +0000 (19:04 -0700)
they are created in the install locations and with the proper timestamp.
(Solution suggested by MvL)

Lib/lib2to3/pgen2/driver.py
Makefile.pre.in
Misc/NEWS

index e7828ffe160f37c145de6aee16a99b34bd141eda..4c611c6640140b2b7652426924f97839fa4e3d84 100644 (file)
@@ -138,3 +138,20 @@ def _newer(a, b):
     if not os.path.exists(b):
         return True
     return os.path.getmtime(a) >= os.path.getmtime(b)
+
+
+def main(*args):
+    """Main program, when run as a script: produce grammar pickle files.
+
+    Calls load_grammar for each argument, a path to a grammar text file.
+    """
+    if not args:
+        args = sys.argv[1:]
+    logging.basicConfig(level=logging.INFO, stream=sys.stdout,
+                        format='%(message)s')
+    for gt in args:
+        load_grammar(gt, save=True, force=True)
+    return True
+
+if __name__ == "__main__":
+    sys.exit(int(not main()))
index f715711d9e328156603fe8e87864e43826bfa52d..d42c9384512e41157fd19d8bd5c819975af9943d 100644 (file)
@@ -1017,8 +1017,6 @@ LIBSUBDIRS=       tkinter tkinter/test tkinter/test/test_tkinter \
                venv venv/scripts venv/scripts/posix \
                curses pydoc_data $(MACHDEPS)
 libinstall:    build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-               $(PYTHON_FOR_BUILD) -Wi -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
        @for i in $(SCRIPTDIR) $(LIBDEST); \
        do \
                if test ! -d $(DESTDIR)$$i; then \
@@ -1096,6 +1094,10 @@ libinstall:      build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
                $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
                -d $(LIBDEST)/site-packages -f \
                -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+               $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
+       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+               $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
 
 # Create the PLATDIR source directory, if one wasn't distributed..
 $(srcdir)/Lib/$(PLATDIR):
@@ -1340,7 +1342,7 @@ clean: pycremoval
        find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
        find build -name 'fficonfig.h' -exec rm -f {} ';' || true
        find build -name 'fficonfig.py' -exec rm -f {} ';' || true
-       -rm -f $(srcdir)/Lib/lib2to3/*Grammar*.pickle
+       -rm -f Lib/lib2to3/*Grammar*.pickle
        -rm -f $(SYSCONFIGDATA)
        -rm -f Modules/_testembed Modules/_freeze_importlib
 
index 802d98483225355cfe3cb6380fb2f97ea608345f..12e4c4aeb7a6ff3b699668db39358c5573c59428 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -141,6 +141,9 @@ Extension Modules
 Tools/Demos
 -----------
 
+- Issue #15822: Really ensure 2to3 grammar pickles are properly installed
+  (replaces fixes for Issue #15645).
+
 Documentation
 -------------