bcpierce00 / unison

Unison file synchronizer
GNU General Public License v3.0
4.1k stars 231 forks source link

windows version needs brief discussion of installation steps #677

Closed alanbork closed 2 years ago

alanbork commented 2 years ago

the readme.md doesn't say anything about required libraries, etc. After just unzipping and running unison-gtk2.exe I get

Uncaught exception Gpointer.Null Raised by primitive operation at file "./uigtk2.ml", line 3019, characters 4-29 Called from file "./uigtk2.ml", line 4187, characters 20-42

which I assume is down to having the wrong version of GTK2 on my win10 machine, or something. The exe is accompanied by a lot of DLLS including libgtk-win, though so maybe not. In any case even a couple sentences about setup would go a long way.

gdt commented 2 years ago

Dup of #602

gdt commented 2 years ago

Help wanted - please figure it out and update the wiki.

alanbork commented 2 years ago

The title of the supposed dupe is pretty opaque. Frankly my bug report/feature request is way better, it would make more sense to keep mine open and close the other one.

On Mon, Mar 14, 2022, 5:11 AM Greg Troxel @.***> wrote:

Dup of #602 https://github.com/bcpierce00/unison/issues/602

— Reply to this email directly, view it on GitHub https://github.com/bcpierce00/unison/issues/677#issuecomment-1066711744, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANPGZ5M5OHV4XJMB7UWM3JLU74UHBANCNFSM5QUJ7ULA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

gdt commented 2 years ago

I don't see it that way. #602 addresses the general problem which is about far more than windows, and identifies the problem precisely. This issue only addresses Windows, but the same sorts of things happen on all operating systems that have CI binaries.

alanbork commented 2 years ago

well if you like getting lots of extra bug reports, I suppose you are right. but no end user is going to see the equivalence.

tleedjarv commented 2 years ago

Even though this issue is closed, please add details about the version and where did you get the zip from. If you downloaded from the releases page then there is no additional installation needed. You may be seeing a different bug.

alanbork commented 2 years ago

I tried several from https://github.com/bcpierce00/unison/releases

eg

https://github.com/bcpierce00/unison/releases/download/v2.51.5/unison-v2.51.5+ocaml-4.06.1+x86_64.windows.zip

all failed in the same way.

On Mon, Mar 14, 2022 at 9:06 AM Tõivo Leedjärv @.***> wrote:

Even though this issue is closed, please add details about the version and where did you get the zip from. If you downloaded from the releases page then there is no additional installation needed. You may be seeing a different bug.

— Reply to this email directly, view it on GitHub https://github.com/bcpierce00/unison/issues/677#issuecomment-1067003798, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANPGZ5O3QVCRUG6JSTAR7KLU75PYRANCNFSM5QUJ7ULA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

tleedjarv commented 2 years ago

Did you also try https://github.com/bcpierce00/unison/releases/tag/v2.52.0

tleedjarv commented 2 years ago

Why I ask - it is important to get the exact error message matching the exact version.

tleedjarv commented 2 years ago

As said before, a zip downloaded from the releases page does not need any specific installation. The error you are receiving may indicate that a dll is not found or perhaps a dll version conflict (this is just speculation; it is impossible to tell from the error message).

The dll in question is libpixbufloader-xpm.dll and it is included in the zip as lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-xpm.dll.

Do you already know that you have conflicting version of GTK2 installed on your machine or do you suspect it? Could you search for occurrences of libpixbufloader-xpm.dll and also libgdk_pixbuf-2.0-0.dll on your machine? Even if there are other installations, it should not make a difference (just unzipping and running the exe should work) unless there is something in the environment that is causing the incorrect dlls to be loaded.

alanbork commented 2 years ago

So the unison-gtk2.exe file knows to search for the dll in ../lib/? If that were precisely true you'd think it would have found it, though.

There is an older copy of unison on my machine as well so I do have an older copy of GTK installed too.

On Mon, Mar 14, 2022 at 11:27 AM Tõivo Leedjärv @.***> wrote:

As said before, a zip downloaded from the releases page does not need any specific installation. The error you are receiving may indicate that a dll is not found or perhaps a dll version conflict (this is just speculation; it is impossible to tell from the error message).

The dll in question is libpixbufloader-xpm.dll and it is included in the zip as lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-xpm.dll.

Do you already know that you have conflicting version of GTK2 installed on your machine or do you suspect it? Could you search for occurrences of libpixbufloader-xpm.dll and also libgdk_pixbuf-2.0-0.dll on your machine? Even if there are other installations, it should not make a difference (just unzipping and running the exe should work) unless there is something in the environment that is causing the incorrect dlls to be loaded.

— Reply to this email directly, view it on GitHub https://github.com/bcpierce00/unison/issues/677#issuecomment-1067150281, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANPGZ5KMPPUL5ZRRTBUQDF3U76AKXANCNFSM5QUJ7ULA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

tleedjarv commented 2 years ago

So the unison-gtk2.exe file knows to search for the dll in ../lib/?

Not directly, no. The dlls next to unison-gtk2.exe are looked up and loaded by the standard loader in Windows. I have no idea how that loader looks up dlls. The dlls in ../lib/gdk-pixbuf-2.0/2.10.0/loaders are loaded by libgdk_pixbuf-2.0-0.dll (or whatever other gtk/gdk dll, that's not imporant) that most likely uses a custom lookup logic. How it does it, I don't know. But this dir structure is known to work for GTK in Windows.

There is an older copy of unison on my machine as well so I do have an older copy of GTK installed too.

Unless it's location included in PATH or LIB or some other env variable that the Windows loader or GTK's own lookup logic consults then I don't see that this would do any harm.

alanbork commented 2 years ago

in order to be helpful, I just tried that:

https://github.com/bcpierce00/unison/releases/download/v2.52.0/unison-v2.52.0+ocaml-4.01.0+x86_64.windows.zip

gives the same result.

Fatal error

Uncaught exception Gpointer.Null Raised by primitive operation at file "./uigtk2.ml", line 3134, characters 4-29 Called from file "./uigtk2.ml", line 4326, characters 19-42

there's two folders in the zip, a bin and a lib. I extracted both but there's no indication where the lib folder should go so it's in the same parent folder as bin, which is probably wrong. But as I stated when I opened this issue, there's not a single hint anywhere as to the proper location or prerequisites for being able to run unison under win32/64

On Mon, Mar 14, 2022 at 9:29 AM Tõivo Leedjärv @.***> wrote:

Why I ask - it is important to get the exact error message matching the exact version.

— Reply to this email directly, view it on GitHub https://github.com/bcpierce00/unison/issues/677#issuecomment-1067032082, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANPGZ5PMUZ4DHGTS37R2YHDU75SNHANCNFSM5QUJ7ULA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

tleedjarv commented 2 years ago

I extracted both but there's no indication where the lib folder should go so it's in the same parent folder as bin, which is probably wrong.

It's not wrong. It is possible to just extract and run.

This is apparently a GTK issue in your environment. You are better off seeking help in the unison-users mailing list. See https://github.com/bcpierce00/unison/wiki/Mailing-Lists

Meanwhile, GTK version used by the GUI has been changed to 3. The new version is still not released yet but you can try what are effectively pre-release builds available at https://github.com/bcpierce00/unison/actions/runs/3212318279 (you have to be logged in to be able to download). Pick a file with name ending in "-publish". You have to extract twice (zip within a zip; this has to do with how the CI works) but there is nothing else to do. Just run bin\unison-gui.exe. I really recommend you trying this because GTK3 is completely different from GTK2.

vectorcr commented 1 year ago

Did you also try https://github.com/bcpierce00/unison/releases/tag/v2.52.0

I ran into this similar issue on Windows 11.

This resolved the issue for me. I downloaded “unison-v2.52.0+ocaml-4.12.1+x86_64.windows” and all the included bins ran without and issue.

Windows 11 22621.1555