Page 1 of 1

Posted: Fri Nov 22, 2002 5:41 am
by Astromarine
Hi. I'm trying to install uplink on my linux machine (redhat 8) in /usr/local/games/uplink/. I have the patch and the rh8 fix installed, but for the life of me I can't figure out what to do to make this thing runnable from anywhere. It only runs if I'm in the same directory as the uplink-rh8 file. Can anyone here help me?

Astro

Posted: Fri Nov 22, 2002 6:19 am
by Sonnybobiche
Did you change the permissions of the file? You need to chmod 777 it.
EDIT:
Wait... that's not right...
I don't know the exact number, but just give it all the permissions available throught the dandy visual permissions changer tool.

(Edited by Sonnybobiche at 12:20 am on Nov. 22, 2002)

Posted: Fri Nov 22, 2002 7:14 pm
by Chad Mulligan
Astromarine --

List the exact command and error message you're getting.

Oh, and here's one issue that you may be running into:

The ld.so loader used by Linux systems to handle shared libraries ignores the LD_LIBRARY_PATH and LD_PRELOAD (mostly) variable for suid/sgid binaries.  The RedHat compatibility fix for Uplink uses BOTH.  So if you've
made the main binary suid/sgid (the flags would be ignored on the shell script, so it'd have to be the binary) in order to let everybody be able to write to a shared directory of users, the fix won't work as-is.

(1) The man page for ld.so notes that LD_PRELOAD /will/ work even with suid/sgid binaries IF (a) the library is suid/sgid itself, and (b) it is somewhere within the standard search path e.g. /usr/local/lib (presumably after re-running ldconfig).

(2) If you're not using suid/sgid, you probably need to make the saved game directory globally writable, but sticky so that nobody overwrites anybody else's.  This will be independent of the directory you're running it from, however, so would not cause the issue you're seeing.

Posted: Fri Nov 22, 2002 8:12 pm
by Astromarine
Erm, I was under the impression that all saves happened in a hidden .uplink directory in the user's home. But I don't think you're all understanding the problem:

I log in as a regular user. I type "cd /usr/local/games/uplink" and "uplink-rh8" and it works. I can play OK. This, I think, means that the game writes stuff to the ~/.uplink dir, since I do NOT have anything suid or sgid.

But, if I type "cd ~" and "/usr/local/games/uplink/uplink-rh8" I cannot play. I get a black window with some squares inside, and nothing else. I made a symlink at /usr/local/bin/uplink pointing to the executable, but this doesn't help.

Any ideas?

AStro

Posted: Sat Nov 23, 2002 1:51 am
by Sonnybobiche
Maybe it game assumes that the directory you're in is the game directory...
Dumb assumption, but what does it matter?
Just add the commands to a new button on the panel.