Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

'pkg-config': No such file or directory when running opam install dream on windows #24851

Open
Randle-Lanre opened this issue Nov 25, 2023 · 3 comments

Comments

@Randle-Lanre
Copy link

Randle-Lanre commented Nov 25, 2023

following the tutorial on Ocaml website I tried to install the dream framework through OPAM and I get the following error.

OS: Windows 11 | 23H2

[ERROR] The compilation of conf-pkg-config.2 failed at "pkg-config --help".

#=== ERROR while compiling conf-pkg-config.2 ==================================#
# context     2.2.0~alpha0~20221228 | win32/x86_64 | conf-withdkml.2 ocaml-system.4.14.0 | pinned
# path        ~\AppData\Local\opam\playground\.opam-switch\build\conf-pkg-config.2
# command     ~\AppData\Local\Programs\DISKUV~1\bin\WITH-D~1.EXE pkg-config --help
# exit-code   127
# env-file    ~\AppData\Local\opam\log\conf-pkg-config-12880-c314fb.env
# output-file ~\AppData\Local\opam\log\conf-pkg-config-12880-c314fb.out
### output ###
# /c/Users/Kehinde/AppData/Local/Programs/DISKUV~1/tools/MSYS2/usr/bin/env: 'pkg-config': No such file or directory



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
┌─ The following actions failed
│ λ build conf-pkg-config 2
└─
╶─ No changes have been performed
# Run eval $(opam env) to update the current shell environment
@kit-ty-kate
Copy link
Member

cc @jonahbeckford

@jonahbeckford
Copy link
Contributor

pkg-config is a Unix tool to locate C libraries that is deeply incompatible with Windows. More generally the way that C is used today by OCaml packages is very Unix-specific.

The next version of DkML will "succeed" in installing pkg-config, but even that is an illusion because many C-based packages will fail. I'd ask that this issue be translated into a "Does Dream support Windows? If so, can it be tested as part of the CI?" issue on the https://github.com/aantron/dream. (I doubt that Dream directly that is the issue, but one of its many dependencies)

By the way, I no longer try to get C-based packages to work on Windows; I can't sustainably create patches for the expanding set of Unix-only packages. I have created a proposal ocaml/dune#8707 for vcpkg integration that will address much of the problem. That is long-term though. Today, I'm redirecting users to one of the options:

  1. (Soon) Wait for Cygwin public release (opam 2.2) and Cygwin depexts (not sure when). Since Cygwin is a full Unix environment, running tools like dream is one of the few areas where Cygwin excels.
  2. (Today) Use WSL 2. Of course, you wouldn't be able to develop Windows products, but I suspect that dream users care about deploying to Linux.
  3. (Today) Subscribe to my DkSDK product where C packages are built in a simple, cross-platform way outside of the Unix-centric OCaml tooling. If a subscriber finds a package (ex. dream) that doesn't work on Windows, they can ask for the missing C dependencies to be supported.

Hope that helps.

@Randle-Lanre
Copy link
Author

@kit-ty-kate @jonahbeckford Thanks for the feedback, I have since moved on to using WSL for OCaml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants