]> 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 01:50:56 +0000 (18:50 -0700)
committerNed Deily <nad@acm.org>
Sun, 9 Sep 2012 01:50:56 +0000 (18:50 -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 5cb6774130cbc1305956981b243a01468dbfe7d3..6dec272ab826fc14de23f98a025b911e0724503d 100644 (file)
@@ -945,8 +945,6 @@ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
                unittest unittest/test \
                curses pydoc_data $(MACHDEPS)
 libinstall:    build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-               ./$(BUILDPYTHON) -Wi -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
        @for i in $(SCRIPTDIR) $(LIBDEST); \
        do \
                if test ! -d $(DESTDIR)$$i; then \
@@ -1024,6 +1022,10 @@ libinstall:      build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
                ./$(BUILDPYTHON) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
                -d $(LIBDEST)/site-packages -f \
                -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+               ./$(BUILDPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
+       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+               ./$(BUILDPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
 
 # Create the PLATDIR source directory, if one wasn't distributed..
 $(srcdir)/Lib/$(PLATDIR):
@@ -1264,7 +1266,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 Modules/_testembed
 
 profile-removal:
index 065f5f61a495f619c9820fa3050fae59328359d2..de76a78f5e5df0705f07165ebe372e28b396dc61 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -525,7 +525,7 @@ Build
 - Issue #15819: Make sure we can build Python out-of-tree from a readonly
   source directory.  (Somewhat related to Issue #9860.)
 
-- Issue #15645: Ensure 2to3 grammar pickles are properly installed.
+- Issue #15822: Ensure 2to3 grammar pickles are properly installed.
 
 - Issue #15560: Fix building _sqlite3 extension on OS X with an SDK.