Skip to content

Installation error on Windows, possibly due to missing .exe extension #112

@maroneze

Description

@maroneze

On a freshly-installed Windows 11, I installed opam using the instructions here, that is:

winget install Git.Git OCaml.opam
(& opam env --switch=default) -split '\\r?\\n' | ForEach-Object { Invoke-Expression $_ }

This resulted in having opam 2.5.0 and OCaml 5.4.1.

I then installed frama-c (opam install frama-c; I had to manually install alt-ergo 2.6.2 first, to avoid an issue with the installation of alt-ergo-free), cloned this repository and did opam pin add ..

I then tried creating an archive for frama-c, but got:

PS C:\Users\andr> opam-oui frama-c

<><> Initialising opam ><><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
Package frama-c.32.0 found with binaries:
  - frama-c-config
  - frama-c-ptests
  - frama-c-script
  - frama-c-test.sh
  - frama-c-wtests
  - frama-c
  - ivette

<><> Creating installation bundle <><><><><><><><><><><><><><><><><><><><><>  🐫
Fatal error:
OpamSystem.File_not_found("C:\\Users\\andr\\AppData\\Local\\opam\\default\\bin\\frama-c-config.exe")
PS C:\Users\andr> C:\\Users\\andr\\AppData\\Local\\opam\\default\\bin\\frama-c-config.exe
C:\\Users\\andr\\AppData\\Local\\opam\\default\\bin\\frama-c-config.exe : Le terme «C:\\Users\\andr\\AppData\\Local\\opam\\default\\bin\\frama-c-config.exe» n'est pas reconnu comme nom
d'applet de commande, fonction, fichier de script ou programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès est correct et
réessayez.
Au caractère Ligne:1 : 1
+ C:\\Users\\andr\\AppData\\Local\\opam\\default\\bin\\frama-c-config.e ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\\Users\\andr...ma-c-config.exe:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Indeed, ls C:\\Users\\andr\\AppData\\Local\\opam\\default\\bin shows, among others:

-a----         2/20/2026  12:01 PM            592 frama-c-config
-a----         2/20/2026  12:01 PM        6185206 frama-c-ptests.exe
-a----         2/20/2026  12:01 PM           9276 frama-c-script
-a----         2/20/2026  12:01 PM          17203 frama-c-test.sh
-a----         2/20/2026  12:01 PM        5759047 frama-c-wtests.exe
-a----         2/20/2026  12:01 PM       34266963 frama-c.exe

So frama-c-config and frama-c-script (which are in fact shell scripts) exist, but frama-c-config.exe does not exist.

In this case, I guess the scripts could just be skipped, even if ideally we'd like to be able to run them. I don't know if there's a way to "wrap" them inside a call to Cygwin, but in any case, I believe that skipping such files might be useful, and possibly adding a "Limitations" (or similar) section to the README, stating that "on Windows, binaries which are shell scripts are not installed", or something similar.

If it's an issue with my installation, please tell me, I can try to recompile or reinstall some things and try again.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions