You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
v3.5.0 breaks conf-perl-* package resolution on Windows #1094
conf-perl-ipc-system-simple and conf-perl-string-shellquote
(required by camlp5) have always required manual installation
on Windows. This worked fine through v3.4.8.
Since v3.5.0, two issues:
cpanm is no longer found in PATH:
Can't open perl script "/cygdrive/c/Strawberry/perl/bin/cpanm":
No such file or directory
Even when installing modules via curl cpanmin.us | perl,
opam verifies conf-perl-* using its internal Cygwin perl
(C:\.opam\.cygwin\root\bin\perl.exe) which has a separate @inc from the perl where modules are installed. The check
always fails:
I'm not sure, but I think it's the same. The fix I found is geneweb/geneweb#2708. I'll retry fixing the version of the Action on my fork and will give you a feedback on that.
I confirm after fixing setup-ocaml@v3.5.1 and retrying with what we had working last week that was: run: cpanm --notest String::ShellQuote IPC::System::Simple
I investigated this. The root cause is a combination of two issues.
1. setup-ocaml v3.5.0 changes
v3.5.0 switched from an external Cygwin installation (C:\cygwin) to opam's internal Cygwin (--cygwin-internal-install, C:\.opam\.cygwin\root) in #1067. As a result, opam now uses C:\.opam\.cygwin\root\bin\perl.exe to verify conf-perl-* packages.
The fact that cpanm worked in v3.4.8 was because the external Cygwin's bash and PATH ordering happened to align by coincidence — it was not intentional behavior.
2. Missing support in opam-repository
conf-perl-string-shellquote and conf-perl-ipc-system-simple have no Cygwin depexts entries. Furthermore, the corresponding Cygwin packages (perl-String-ShellQuote, etc.) don't exist in the Cygwin package repository at all.
However, Cygwin perl ships with cpan out of the box. If the conf packages use cpan to install the required modules on Cygwin as part of their build step, users won't need to install them manually. I plan to propose this fix to opam-repository.
Workaround
Until the opam-repository fix is merged, you can install modules using the internal Cygwin perl's cpan in your workflow:
Since v3.5.1 adds CYGWIN_ROOT_BIN to PATH for the cygwin environment, cpan will use the internal Cygwin perl, and modules will be installed into the @inc that opam checks during conf-perl-* verification.
For context, we've added the conf-perl step for camlp5 (Geneweb/Windows)
after a long work last year with @chetmurthy to port camlp5 for Ocaml > 5 to Windows.
Two things worth considering:
In our experience, cpan without a config file can be
problematic (interactive prompts, slow CPAN mirror selection).
We had to ship a >50-line cpan-config.pm and call it with cpan -j config.pm. Would -T alone guarantee silent
non-interactive behavior in the Cygwin perl context?
Two weeks ago, after a 404 on those Perl modules. I tried cpanm. I'm not sure if it's available in Cygwin perl but
it's installable via cpan App::cpanminus and it would
perhaps be a better choice for performances: cpan takes
~26 s vs ~6 s for cpanm on CI runners.
Activity
smorimoto commentedon Mar 29, 2026
How about 3.5.1?
a2line commentedon Mar 29, 2026
I'm not sure, but I think it's the same. The fix I found is geneweb/geneweb#2708. I'll retry fixing the version of the Action on my fork and will give you a feedback on that.
a2line commentedon Mar 29, 2026
I confirm after fixing setup-ocaml@v3.5.1 and retrying with what we had working last week that was:
run: cpanm --notest String::ShellQuote IPC::System::SimpleIt fails to find the tool: https://github.com/a2line/geneweb/actions/runs/23702718391/job/69049955210#step:6:25
From here I add only curl for cpanm and relaunch CIs, the modules get installed, but the CI fails on the next step: https://github.com/a2line/geneweb/actions/runs/23703119761/job/69050439874#step:8:290
smorimoto commentedon Mar 29, 2026
I investigated this. The root cause is a combination of two issues.
1. setup-ocaml v3.5.0 changes
v3.5.0 switched from an external Cygwin installation (
C:\cygwin) to opam's internal Cygwin (--cygwin-internal-install,C:\.opam\.cygwin\root) in #1067. As a result, opam now usesC:\.opam\.cygwin\root\bin\perl.exeto verify conf-perl-* packages.The fact that
cpanmworked in v3.4.8 was because the external Cygwin's bash and PATH ordering happened to align by coincidence — it was not intentional behavior.2. Missing support in opam-repository
conf-perl-string-shellquoteandconf-perl-ipc-system-simplehave no Cygwindepextsentries. Furthermore, the corresponding Cygwin packages (perl-String-ShellQuote, etc.) don't exist in the Cygwin package repository at all.However, Cygwin perl ships with
cpanout of the box. If the conf packages usecpanto install the required modules on Cygwin as part of their build step, users won't need to install them manually. I plan to propose this fix to opam-repository.Workaround
Until the opam-repository fix is merged, you can install modules using the internal Cygwin perl's
cpanin your workflow:Since v3.5.1 adds
CYGWIN_ROOT_BINto PATH for thecygwinenvironment,cpanwill use the internal Cygwin perl, and modules will be installed into the @inc that opam checks during conf-perl-* verification.conf-perl-{string-shellquote,ipc-system-simple}.4: use cpan on Cygwin
a2line commentedon Mar 29, 2026
For context, we've added the conf-perl step for camlp5 (Geneweb/Windows)
after a long work last year with @chetmurthy to port camlp5 for Ocaml > 5 to Windows.
Two things worth considering:
In our experience,
cpanwithout a config file can beproblematic (interactive prompts, slow CPAN mirror selection).
We had to ship a >50-line cpan-config.pm and call it with
cpan -j config.pm. Would-Talone guarantee silentnon-interactive behavior in the Cygwin perl context?
Two weeks ago, after a 404 on those Perl modules. I tried
cpanm. I'm not sure if it's available in Cygwin perl butit's installable via
cpan App::cpanminusand it wouldperhaps be a better choice for performances:
cpantakes~26 s vs ~6 s for
cpanmon CI runners.conf-perl-{string-shellquote,ipc-system-simple}.4: use cpan on Cygwin
conf-perl-{string-shellquote,ipc-system-simple}.4: use cpan on Cygwin
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
6 remaining items
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
conf-perl.3, conf-perl-{string-shellquote,ipc-system-simple}.4: Cygwi…
Install opam base packages on MSYS2
smorimoto commentedon Mar 30, 2026
@a2line What do you think about this fix? ocaml/opam-repository#29613