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 opam
that 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?