[Unison-hackers] build instructions windows UI/GTK3 version of unison

unison at legogutt.no unison at legogutt.no
Sun Dec 25 12:38:59 EST 2022


Hi - I am a long time user of unison, but never tried compiling it myself.

But now I am facing a problem with using copythreshold and rsync on 
large files (on windows).

I get an error message from rsync saying  it can not copy between two 
remotes. I think this is due to the colon in "c:\" notation on windows.

I tried to make unison call a couple of .cmds to make rsync in cygwin do 
the rsync call - but I am not good enough in bash-scripting to translate 
"c:\" to "/cygdrive/c/", so I though I could try to compile and build 
the project myself and fix the root cause and go around all the strange 
scripting.

I have managed to compile, build and run the GTK3 version on ubuntu - 
but I have tried many many hours to build the windows GTK version.

I am able to build the cl (text) version for windows following the 
instructions here (I love the idea of a building process using docker):

https://urldefense.com/v3/__https://github.com/bcpierce00/unison/wiki/Building-Windows-binary-with-MSVC-Ocaml-4.12-Using-Docker-Container__;!!IBzWLUs!XoC-yroVwej-6DCi230-J3T2prwE7U2nCjkv1rJvLOsvH8iFjDHGFWY15V-QfjeGku3U1V8je42YrQrplZJwTl9I-Mgw5mQrK2cJ2A$ 

Can anyone please update the instructions to also contain instructions 
on how to build the windows-gtk3 version of unison?

The error message I get is:

C:\cygwin64\home\opam\unison>make OSTYPE=cygwin UISTYLE=gtk3
make -C src
make[1]: Entering directory '/home/opam/unison/src'
UISTYLE = gtk3
UI_WINOS =
Building for Windows
NATIVE = true
STATIC = false
OSTYPE = cygwin
OSARCH = win32
ocamlopt: uigtk3.ml ---> uigtk3.cmx
ocamlopt -g -I lwt -I ubase -I system -I +unix -I +str -I fsmonitor -I 
fsmonitor/windows -I system/win -I lwt/win -I +lablgtk3 -I +cairo2 -c 
./uigtk3.ml
File "./uigtk3.ml", line 75, characters 26-48:
75 | let fontMonospace = lazy (Pango.Font.from_string "monospace")
                                ^^^^^^^^^^^^^^^^^^^^^^
Error: Unbound module Pango
make[1]: *** [Makefile.OCaml:459: uigtk3.cmx] Error 2
make[1]: Leaving directory '/home/opam/unison/src'
make: *** [Makefile:9: src] Error 2

C:\cygwin64\home\opam\unison>

I have tried to add a few packages regarding Pango to the docker image 
by running the following command inside the docker container:

C:\cygwin64\setup-x86_64.exe --quiet-mode --no-shortcuts --no-startmenu 
--no-desktop --only-site --local-package-dir C:\TEMP\cache --root 
C:\cygwin64 --site https://urldefense.com/v3/__https://mirrors.kernel.org/sourceware/cygwin/__;!!IBzWLUs!XoC-yroVwej-6DCi230-J3T2prwE7U2nCjkv1rJvLOsvH8iFjDHGFWY15V-QfjeGku3U1V8je42YrQrplZJwTl9I-Mgw5mQEn8l2Uw$  
--symlink-type=native --packages ocaml ocaml-cairo2 ocaml-cairo2-gtk 
ocaml-cairo2-pango ocaml-lablgtk3 mingw64-i686-pango1.0 
mingw64-x86_64-pango1.0 libpango1.0_0 libpango1.0-devel libcairo2 &&   
powershell -Command "Remove-Item 'C:\TEMP' -Recurse"

but I still get the error message regarding Pango.Font.from_string no 
matter which packages regarding Pango I could find relevant to add.

Please can anyone be very kind and update the instructions for building 
the UI/GTK3-version of unison on windows.

Best regards,
Arild Langseid
Oslo, Norway



More information about the Unison-hackers mailing list