clangml reinstallations regularly break when the underlying
llvm dep-ext (a system package) is upgraded, because the detection of the system package is performed by
conf-libclang, and the detected paths (stored in package variables) are no longer valid after upgrade.
A workaround is to run
opam reinstall conf-libclang to detect the new paths, but this is not intuitive for the users.
In an ideal world, I would like to tell
conf-libclang should be reinstalled each time the external dependency has changed, but I doubt there exists such a mechanism.
Another possibility is to duplicate the detection logic implemented in
conf-libclang directly in the package
clangml itself, but that is not very satisfactory and, in that case, I will not see the point to keep a separate
conf-libclang package anymore.
I think it should be a common problem for all conf packages relying on external dependencies. Are there any better solutions?