I recently updated by tree and had problems running lldb due to Python issues. Below is what I've been able to determine is the issue. I thought asking the list first for directional advice would make more sense prior to suggesting a patch.
This revision changed the Python files into a Python package:
However, this broke running on FreeBSD since the finish-swig-Python-LLDB.sh script is only run from an Xcode build even though the script appears to support both LLDB.framework and non-Darwin builds. For non-Darwin builds the Python file install is done in source/Interpreter/Makefile (which was not changed to support the new packaging and usage).
There are probably 3 locations for installing the Python packages:
1. Framework installs for Darwin
2. In-tree installs for testing lldb local to the source tree
3. Installed lldb for general use.
I believe the Python packaging should be consistent across these install locations even though the actual location may vary. The question is, where should the packaging be done for these to be kept consistent? Should non-Darwin systems use the shell script instead of the Makefile? Or should both be kept in sync?
Also, two other related issues:
1. The finish-swig-Python-LLDB.sh shell script introduced a sh incompatibility by using a bash function.
2. It is unclear that the non-Darwin need or want some of the Cocoa/objc python files which would mean changing the packaging and the Python imports used in ScriptInterpreterPython.cpp to optionally install those files.