EvoBot & Whichbot Loading Issues

NS Server Discussion
Post Reply
GiGaBiTe
Site Admin
Posts: 65
Joined: Wed Jan 29, 2020 2:38 am

EvoBot & Whichbot Loading Issues

Post by GiGaBiTe »

A problem has been identified on Linux HLDS servers using Steampipe, where the EvoBot and Whichbot plugins will fail to load with a "badf load" in Metamod. This has been determined to be caused by Valve's inclusion of 10+ year old copies of "libstdc++.so.6" and "libgcc_s.so.1". These two files are downloaded by Valve to your root HLDS install directory under Linux when you create a new HLDS install, or try to verify the file integrity in steamcmd.

These files must be deleted and replaced with symlinks to the 32 bit versions of the libraries in question on the host server.

Additionally, Whichbot requires an ancient dependency, the valve gamedll. Valve changed the name of this file some time in the past decade, which results in the plugin crashing on startup. A fix for this is to go into the valve/dlls/hl.so and make a symlink named hl_i386.so pointing to hl.so in the same directory. It should allow the plugin to run normally after that.
GiGaBiTe
Site Admin
Posts: 65
Joined: Wed Jan 29, 2020 2:38 am

Re: EvoBot & Whichbot Loading Issues

Post by GiGaBiTe »

As an addendum, on Fedora, another library is needed, libcurl-gnutls.so.4. This library exists under a different name under Fedora, libcurl.so.4.

To fix this problem, just go into the /usr/lib directory as root and make a symlink.

Code: Select all

ln -s libcurl.so.4 libcurl-gnutls.so.4
You may get an error if you ldd the plugin binaries about not providing version information, but it should work fine.
GiGaBiTe
Site Admin
Posts: 65
Joined: Wed Jan 29, 2020 2:38 am

Re: EvoBot & Whichbot Loading Issues

Post by GiGaBiTe »

Further addendum, whichbot (and many other 32 bit libraries) now crash due to the idiot maintainers of GlibC. As of 2.41, the idiot maintainers have implemented "safety and security" features that break thousands and thousands of libraries, programs, etc.

As a workaround, you can use the patchelf tool to patch the whichbot binary and make it work again.

Code: Select all

patchelf --clear-execstack libwhichbot.so
Post Reply