This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ned.deily
Recipients benjamin.peterson, ned.deily, ronaldoussoren, trent
Date 2012-09-01.11:26:43
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1346498804.77.0.811767404939.issue15838@psf.upfronthosting.co.za>
In-reply-to
Content
With the recent activity around making out-of-tree builds work, while investigating Issue15822 I realized that the lib2to3 grammar pickle files are being built in the source directory by the libinstall target step of the main Makefile rather than in the build directory or just in the install location.  The fixes for Issue15645 moved the pickle building to the start of the target recipes:

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()"


On reflection, I think the PYTHONPATH definition is bogus here since LIBDEST is populated immediately after this step. More importantly, lib2to3/pgen2/driver:load_grammar ends up writing the pickle files into the source directory.  Unlike some other cases in the Makefile, if the source directory is read-only, the failure to create the pickle files is not an error during installation but it may likely cause problems for later users of the installed lib2to3 (like in the Issue15822 scenario), i.e. when the missing pickles are attempted to be created in the read-only install directories.
History
Date User Action Args
2012-09-01 11:26:44ned.deilysetrecipients: + ned.deily, ronaldoussoren, benjamin.peterson, trent
2012-09-01 11:26:44ned.deilysetmessageid: <1346498804.77.0.811767404939.issue15838@psf.upfronthosting.co.za>
2012-09-01 11:26:44ned.deilylinkissue15838 messages
2012-09-01 11:26:43ned.deilycreate