ID:2293882
 
BYOND Version:511
Operating System:Linux
Web Browser:Firefox 55.0
Applies to:Dream Daemon
Status: Open

Issue hasn't been assigned a status value.
Edit: as mso pointed out, this is because it's loading libbyond.so from /usr/local/lib instead of from the zip extract.

Descriptive Problem Summary:
I was trying to diagnose a different bug (will make a report in a sec don't worry) and I noticed that no matter how old of a DD binary I run, it's ALWAYS running the version installed in my PATH proper. This means you can't run separate binaries extracted from zip files at all.

Changing the installed version by installing the old version and it works properly, but of course now your system is using a different version.

Numbered Steps to Reproduce Problem:
1. Get a Linux server.
2. Install BYOND.
3. Get an older BYOND version and extract that without installing it.
4. Attempt to run older version and notice it claims to be the latest version you actually installed.

That doesn't really make sense to me; whatever version runs should be determined by the Linux command line syntax. If you run ./dreamdaemon it should always go by the current directory.
If you want to run a version from a seperate directory you have to run the binary from the bin folder of the extracted zip ..

The way you worded the above sounds like you're just using the DreamDaemon command.. not /olderbyondversion/bin/DreamDaemon
In response to Lummox JR
Lummox JR wrote:
That doesn't really make sense to me; whatever version runs should be determined by the Linux command line syntax. If you run ./dreamdaemon it should always go by the current directory.


Beat me to it, I wonder how many seconds between us :D
Yes, I'm running the proper binary from the directory I extracted.
I even went as far as to check the binary of the DD process from /proc and to chmod the binary and back to make sure I'm not running the one in my PATH, it's ALL pointing to the zip one.
Oh what the fuck.
byondserver@linuxtest:~$ wget http://www.byond.com/download/build/511/511.1385_byond_linux.zip
--2017-09-14 22:22:09-- http://www.byond.com/download/build/511/511.1385_byond_linux.zip
-snip-
byondserver@linuxtest:~$ unzip 511.1385_byond_linux.zip -d 511.1385
Archive: 511.1385_byond_linux.zip
creating: 511.1385/byond/
-snip-
byondserver@linuxtest:~$ cd 511.1385 byondserver@linuxtest:~/511.1385$ cd byond/
byondserver@linuxtest:~/511.1385/byond$ cd bin/
byondserver@linuxtest:~/511.1385/byond/bin$ ./DreamDaemon -version
BYOND 5.0 Public (Version 511.1381) on Linux



This likely has to do with how linux loads libraries actually.

In windows a .dll of the same name in the current directory takes priority over ones in loading paths. In linux this isn't necessary the case, and sometimes .so's in the current directory are flat out ignored.
byondserver@linuxtest:~/511.1385/byond/bin$ ldd DreamDaemon
linux-gate.so.1 (0xf77ec000)
libbyond.so => /usr/local/lib/libbyond.so (0xf728d000)
libext.so => /usr/local/lib/libext.so (0xf7078000)
librt.so.1 => /lib32/librt.so.1 (0xf706f000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf6f7d000)
libm.so.6 => /lib32/libm.so.6 (0xf6f37000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf6f19000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf6efd000)
libc.so.6 => /lib32/libc.so.6 (0xf6d50000)
libdl.so.2 => /lib32/libdl.so.2 (0xf6d4b000)
/lib/ld-linux.so.2 (0x5659a000)
In response to MrStonedOne
MrStonedOne wrote:
Oh what the fuck.
> byondserver@linuxtest:~$ wget http://www.byond.com/download/build/511/511.1385_byond_linux.zip
> --2017-09-14 22:22:09-- http://www.byond.com/download/build/511/511.1385_byond_linux.zip
> -snip-
> byondserver@linuxtest:~$ unzip 511.1385_byond_linux.zip -d 511.1385
> Archive: 511.1385_byond_linux.zip
> creating: 511.1385/byond/
> -snip-
> byondserver@linuxtest:~$ cd 511.1385 > byondserver@linuxtest:~/511.1385$ cd byond/
> byondserver@linuxtest:~/511.1385/byond$ cd bin/
> byondserver@linuxtest:~/511.1385/byond/bin$ ./DreamDaemon -version
> BYOND 5.0 Public (Version 511.1381) on Linux
>



Interesting..
What's your LD_LIBRARY_PATH?

nyx@thanatos ~/byond/510.1346/bin
$ ./DreamDaemon -version
BYOND 5.0 Beta (Version 511.1366) on Linux
nyx@thanatos ~/byond/510.1346/bin
$ LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./DreamDaemon -version
BYOND 5.0 Public (Version 510.1346) on Linux
This only happens if you don't source bin/byondsetup.
You really should be using that...
TIL about bin/byondexec

That's really annoying to run from a program directly though, especially because it breaks if your working dir is incorrect.
Go to the base byond dir, run `make here`.
Then run `source bin/byondsetup` and you'll be able to run all byond things with proper libs on that shell.