diff --git a/diskimage_builder/elements/dib-python/README.rst b/diskimage_builder/elements/dib-python/README.rst index 2ed7b5ad..09afe76d 100644 --- a/diskimage_builder/elements/dib-python/README.rst +++ b/diskimage_builder/elements/dib-python/README.rst @@ -2,23 +2,29 @@ dib-python ========== -Adds a symlink to `/usr/local/bin/dib-python` which points at either a -`python2` or `python3` executable as appropriate. +Adds a symlink to ``/usr/local/bin/dib-python`` which points at either a +``python2`` or ``python3`` executable as appropriate. In-chroot scripts should use this as their interpreter -(`#!/usr/local/bin/dib-python`) to make scripts that are compatible -with both `python2` and `python3`. We can not assume -`/usr/bin/python` exists, as some platforms have started shipping with +(``#!/usr/local/bin/dib-python``) to make scripts that are compatible +with both ``python2`` and ``python3``. We can not assume +``/usr/bin/python`` exists, as some platforms have started shipping with only Python 3. -`DIB_PYTHON` will be exported as the python interpreter. You should -use this instead of `python script.py` (e.g. `${DIB_PYTHON} -script.py`). Note you can also call `/usr/local/bin/dib-python -script.py` but in some circumstances, such as creating a `virtualenv`, -it can create somewhat confusing references to `dib-python` that +``DIB_PYTHON`` will be exported as the python interpreter. You should +use this instead of ``python script.py`` (e.g. ``${DIB_PYTHON} +script.py``). Note you can also call ``/usr/local/bin/dib-python +script.py`` but in some circumstances, such as creating a ``virtualenv``, +it can create somewhat confusing references to ``dib-python`` that remain in the built image. This does not install a python if one does not exist, and instead fails. -This also exports a variable `DIB_PYTHON_VERSION` which will either be +This also exports a variable ``DIB_PYTHON_VERSION`` which will either be '2' or '3' depending on the python version which dib-python points to. + + +.. note:: + + The ``dib-python`` interpreter will be removed in ``cleanup.d``. It + is only intended for build scripts. diff --git a/diskimage_builder/elements/dib-python/cleanup.d/50-dib-python b/diskimage_builder/elements/dib-python/cleanup.d/50-dib-python new file mode 100755 index 00000000..028ad858 --- /dev/null +++ b/diskimage_builder/elements/dib-python/cleanup.d/50-dib-python @@ -0,0 +1,12 @@ +#!/bin/bash + +if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then + set -x +fi +set -eu +set -o pipefail + +# Remove dib-python wrapper. Nothing else should be running in chroot +# and required this any more. + +sudo unlink $TARGET_ROOT/usr/local/bin/dib-python # dib-lint: safe_sudo