-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
On #28949 I realized something:
System depexts constraints are handled differently across system package managers.
On Debian 13 running the ocaml-version tests, a missing system package (here: libpcre3-dev which is apparently moved to the Multimedia Main repo https://pkgs.org/search/?q=libpcre3-dev) is detected during constraint resolution, leading to package not available and a silent [SKIP] Package not available:
https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/82718aa4d0314edf474f766eab06cd08356de60a/variant/compilers,5.4,mazeppa.0.7.0
mazeppa.0.7.0 is not installed. Install it? [Y/n] y
* Missing dependency:
- mazeppa >= 0.7.0 -> spectrum >= 0.6.0 -> pcre >= 7.5 -> conf-libpcre
depends on the unavailable system package 'libpcre3-dev'. Use `--no-depexts' to attempt installation anyway, or it is possible that a depext package name in the opam file is incorrect.
No solution found, exiting
On Centos 10 the missing package is found later, at installation time, leading to failed: System package install failed with exit code 1 and a red CI light:
https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/82718aa4d0314edf474f766eab06cd08356de60a/variant/distributions,centos-10-ocaml-4.14,mazeppa.0.7.0
The following system packages will first need to be installed:
pcre-devel
<><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>
opam believes some required external dependencies are missing. opam can:
> 1. Run yum to install them (may need root/sudo access)
2. Display the recommended yum command and wait while you run it manually (e.g. in another terminal)
3. Continue anyway, and, upon success, permanently register that this external dependency is present, but not detectable
4. Abort the installation
[1/2/3/4] 1
+ /usr/bin/sudo "yum" "install" "-y" "pcre-devel"
- Last metadata expiration check: 0:00:05 ago on Sat Nov 22 12:54:37 2025.
- No match for argument: pcre-devel
- Error: Unable to find a match: pcre-devel
[ERROR] System package install failed with exit code 1 at command:
sudo yum install -y pcre-devel
[ERROR] These packages are still missing: pcre-devel
A similar red CI light happens on OpenSuse Tumbleweed:
https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/82718aa4d0314edf474f766eab06cd08356de60a/variant/distributions,opensuse-tumbleweed-ocaml-4.14,mazeppa.0.7.0
+ /usr/bin/sudo "zypper" "--non-interactive" "install" "pcre-devel"
- Loading repository data...
- Reading installed packages...
- 'pcre-devel' not found in package names. Trying capabilities.
- No provider of 'pcre-devel' found.
[ERROR] System package install failed with exit code 104 at command:
sudo zypper --non-interactive install pcre-devel
[ERROR] These packages are still missing: pcre-devel
I realize that system package managers can vary widely and hence may offer different features.
The above however surprised me and hence would be good to document - also to confirm that this is the intended behaviour.