facebook / watchman

Watches files and records, or triggers actions, when they change.
https://facebook.github.io/watchman/
MIT License
12.4k stars 987 forks source link

Prebuilt Linux binaries are unusable on any modern system #1187

Open Flameeyes opened 5 months ago

Flameeyes commented 5 months ago

When downloading the prebuild Linux binary, it will not work as is because of the missing libraries.

While LD_LIBRARY_PATH can be set to address that, it might be worth setting the correct RPATH instead.

Flameeyes commented 5 months ago

Actually this is worse, because the DT_NEEDED entries for the binaries refer directly to /usr/local/lib so by default the LD_LIBRARY_PATH option is not even respected.

Flameeyes commented 5 months ago

Okay after downloading the zip file with the prebuilt binaries it's possible to fix this with patchelf:

for file in bin/*; do patchelf --add-rpath '$ORIGIN/../lib' $file; readelf -d $file | grep NEEDED | grep /usr/local | sed -e 's:.*\[\(.*\)\]:\1:' | while read library; do patchelf --replace-needed $library $(basename $library) $file; done; done
Flameeyes commented 5 months ago

Nah, this is all broken, there's no way to get this to run on any modern system. I believe the prebuilt binaries shouldn't be pushed at all, and the installation instructions updated accordingly.

devdave commented 5 months ago

For myself, I ended up building from source, but the mentioned .deb files would have been nice. https://facebook.github.io/watchman/docs/install#ubuntu-prebuilt-debs

quux-aivar commented 2 months ago

Nah, this is all broken, there's no way to get this to run on any modern system. I believe the prebuilt binaries shouldn't be pushed at all, and the installation instructions updated accordingly.

I agree!

Overall, it appears that the project has been abandoned.

https://facebook.github.io/watchman/docs/install#fedora-prebuilt-rpms

Screenshot 2024-04-17 at 09 43 01

Unfortunately, Fedora 39 does not yet have an RPM package available.

When you install the Linux binaries that are given via release, the app will fail.