From 5dfe225463b658c6174db7685a8410566e9f8cbb Mon Sep 17 00:00:00 2001 From: AlexWells Date: Wed, 14 Jan 2026 12:02:34 +0000 Subject: [PATCH 1/2] Downgrade urllib3 Version 2 does not support Python3.7 (at least the version available as dls-python3) due to incompatible SSL ciphers From c00988c4868a4e78353402a28045b6ace142104e Mon Sep 17 00:00:00 2001 From: AlexWells Date: Wed, 14 Jan 2026 12:06:10 +0000 Subject: [PATCH 2/2] Add docs detailing uv build issue and workaround --- docs/how-to/build-softioc-with-uv.rst | 28 +++++++++++++++++++++++++++ docs/index.rst | 1 + 2 files changed, 29 insertions(+) create mode 100644 docs/how-to/build-softioc-with-uv.rst diff --git a/docs/how-to/build-softioc-with-uv.rst b/docs/how-to/build-softioc-with-uv.rst new file mode 100644 index 00000000..ee9bec5d --- /dev/null +++ b/docs/how-to/build-softioc-with-uv.rst @@ -0,0 +1,28 @@ +Building pythonSoftIOC with ``uv`` +================================== + +There are some issues when using the ``uv`` tool to build pythonSoftIOC, which +may happen if you try and use this package on an architecture or Python version +where we do not supply pre-built wheels. + +If you see an ``ImportError`` that looks like this when running your application:: + + src/techui_builder/builder.py:13: in + from softioc.builder import records + /cache/venv-for/scratch/eyh46967/dev/temp/techui-builder/lib/python3.13/site-packages/softioc/__init__.py:14: in + from .imports import dbLoadDatabase, registerRecordDeviceDriver + /cache/venv-for/scratch/eyh46967/dev/temp/techui-builder/lib/python3.13/site-packages/softioc/imports.py:10: in + from . import _extension + E ImportError: libdbCore.so.7.0.10.99.0: cannot open shared object file: No such file or directory + + +Then you need to add these lines to your ``pyproject.toml`` file:: + + [tool.uv.extra-build-dependencies] + softioc = [{ requirement = "epicscorelibs", match-runtime = true }] + +This will tell ``uv`` to do additional dependency checking between build-time and +run-time environments, ensuring the same version of ``epicscorelibs`` is used +in both. + +See discussion in `uv issue #17378 `_. diff --git a/docs/index.rst b/docs/index.rst index b15f5ab2..b3f63861 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -63,6 +63,7 @@ Table Of Contents how-to/make-publishable-ioc how-to/read-data-from-ioc how-to/use-soft-records + how-to/build-softioc-with-uv .. toctree:: :caption: Explanations