Recent update of libgpg-error0 and libassuan0 break curl and Opam (OCaml package manager)

Brian Inglis Brian.Inglis@SystematicSW.ab.ca
Tue Dec 19 14:51:45 GMT 2023


On 2023-12-19 06:26, Michael Soegtrop via Cygwin wrote:
> my daily CI of Coq Platform indicates that this update:
> libassuan0-2.5.5-1   -> libassuan0-2.5.6-1
> libgpg-error0-1.47-1 -> libgpg-error0-1.37-1

   libgpg-error0-1.37-1 -> libgpg-error0-1.47-1

> breaks Opam, the OCaml package manager, via a failed call to curl as can be seen 
> by executing these commands:
> $ wget 
> https://github.com/fdopen/opam-repository-mingw/releases/download/0.0.0.2/opam64.tar.xz -O "opam64.tar.xz"
> $ tar -xf "opam64.tar.xz"
> $ bash opam64/install.sh --prefix "/usr/$(uname -m)-w64-mingw32/sys-root/mingw"
> $ opam init --bare --shell-setup --enable-shell-hook --enable-completion 
> 'default' 'https://opam.ocaml.org' --disable-sandboxing
> Replacing the DLLs of libassuan0 and libgpg-error0 with the previous versions 
> listed above (just replace the DLLs) fixes this.
> I had a look at what happens with Procmon. In the end a call to cygwn curl (from 
> a MinGW app) fails. In Procmon I can see that curl successfully downloads the 
> file and crashes immediately after closing the output file. With the old 
> versions of libassuan0 and libgpg-error0, curl succeeds. That this download as 
> such is successful shows that this is not a temporary network hickup (I also 
> tested it at least 10 times either way).
> Usual usages of curl seem to work - I couldn't reduce the failure reproduction 
> beyond the above 4 lines and couldn't figure out what is so special about the 
> curl call of opam.
> This is quite painful for me - I was in the middle of a release of Coq Platform 
> (a widely used distribution of the Coq proof assistant), when my Windows CI 
> (which does a cygwin based MinGW cross compilation of OCaml and Coq) failed. 
> Especially painful is that there is no easy way to install older package 
> versions from the command line.
> 
> I would appreciate a fast roll back. Otherwise I have to find a way to install 
> the older versions without user interaction.

I don't build curl, gsasl, or libgcrypt with libassuan, which is used by gnupg2 
internally between components for IPC.

Deps are:

	opam -> curl -> libcurl4 -> libgsasl18 -> libgcrypt20 -> libgpg-error0

I have not yet upgraded libgpg-error and rebuilt libgcrypt, gsasl, or curl, do 
not use OCaML or Opam, or have them installed.

> Btw.: I do a daily build test of Coq Platform with a fresh cygwin since about 6 
> years and this is only the fourth failure! I really appreciate the stability of 
> cygwin - excellent work!

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry



More information about the Cygwin mailing list