From unison at legogutt.no Sun Dec 25 12:38:59 2022 From: unison at legogutt.no (unison at legogutt.no) Date: Sun, 25 Dec 2022 18:38:59 +0100 Subject: [Unison-hackers] build instructions windows UI/GTK3 version of unison Message-ID: <3396e90b-d035-4783-78ce-858cce6c4183@langseid.no> 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 From gdt at lexort.com Tue Dec 27 08:50:15 2022 From: gdt at lexort.com (Greg Troxel) Date: Tue, 27 Dec 2022 08:50:15 -0500 Subject: [Unison-hackers] build instructions windows UI/GTK3 version of unison In-Reply-To: <3396e90b-d035-4783-78ce-858cce6c4183@langseid.no> (unison@legogutt.no's message of "Sun, 25 Dec 2022 18:38:59 +0100") References: <3396e90b-d035-4783-78ce-858cce6c4183@langseid.no> Message-ID: Look in .github/workflows/CI.yml That is how the CI builds are done. build instructions are unfortunately likely outdated. (and, I do not use Windows at all or understand windows building issues) If you submit a draft PR I suspect I can approve workflow runs for it, but I bet you can do the CI steps manually.