LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Steam on Slackware (https://www.linuxquestions.org/questions/slackware-14/steam-on-slackware-4175436118/)

schmatzler 11-07-2012 12:37 PM

Steam on Slackware
 
The Steam gaming platform has finally found its native way onto Linux!

At the moment there is only a Debian package available here:

http://media.steampowered.com/client...ller/steam.deb

I used mc to unpack the data.tar.gz in the /usr folder and I can startup the Steam installation with:

Code:

steam steam://store
But it doesn't run after that, I get the following error:

Code:

Installing breakpad exception handler for appid(steam)/version(1352224866_client)
unlinked 0 orphaned pipes
[1107/193600:WARNING:proxy_service.cc(646)] PAC support disabled because there is no system implementation
client_api.cpp (273) : Assertion Failed: ClientAPI_InitGlobalInstance: InternalAPI_Init_Internal failed.

Assert( Assertion Failed: ClientAPI_InitGlobalInstance: InternalAPI_Init_Internal failed.
 ):/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/steamui/../common/steam/client_api.cpp:273

SteamStartup.cpp (569) : Assertion Failed: ! "There was a problem with your Steam installation.\n" "Please reinstall steam.\n"
Shutting down. . .
unlinked 2 orphaned pipes
CAsyncIOManager: 0 threads terminating.  0 reads, 0 writes, 0 deferrals.
CAsyncIOManager: 52 single object sleeps, 3 multi object sleeps
CAsyncIOManager: 0 single object alertable sleeps, 1 multi object alertable sleeps

Any ideas?

dugan 11-07-2012 01:03 PM

Is there only a 32-bit client?

mlangdn 11-07-2012 01:44 PM

Nope - have to have mulitilib. Here's an interesting link:

https://developer.valvesoftware.com/wiki/SteamCMD

jtsn 11-07-2012 02:45 PM

Quote:

Originally Posted by schmatzler (Post 4824347)
At the moment there is only a Debian package available here

It's an Ubuntu Package. And I doubt, there will be any other option in the near future.

Quote:

Any ideas?
The Windows version runs fine on Slackware using wine. It sits in $HOME, doesn't need root access and touches nothing in /usr. A native Linux port should at least meet this standard.

NyteOwl 11-07-2012 03:01 PM

Steam = Stupid terrible egregious antisocial malware

IMHO of course :)

dugan 11-07-2012 03:25 PM

Well, there's an absolutely massive Linux Thread which largely consists of people trying to get it to work on non-Ubuntu distros...

There's already an Arch Linux PkGBuild which allegedly works...

TobiSGD 11-07-2012 03:31 PM

Quote:

Originally Posted by jtsn (Post 4824443)
It sits in $HOME, doesn't need root access and touches nothing in /usr. A native Linux port should at least meet this standard.

Why should an executable binary not reside in /usr? Why should an application with the purpose to install software on your machine not need root access? Why should an application that installs software on your machine not touch /usr? Do you have the same requirements for sbopkg?

jtsn 11-07-2012 03:45 PM

Quote:

Originally Posted by TobiSGD (Post 4824482)
Why should an executable binary not reside in /usr?

Because system-wide application bundles belong to /opt and user-installed application bundles belong to $HOME.

Quote:

Why should an application with the purpose to install software on your machine not need root access?
It doesn't need these privileges on Windows for obvious reasons. It completely operates in its own directory.

The question is: Why should I grant root access to a closed DRM BLOB, when it's not needed at all.

Quote:

Why should an application that installs software on your machine not touch /usr?
See above. The one and only application, which installs software on my machine, is installpkg.

Quote:

Do you have the same requirements for sbopkg?
Sbopkg doesn't touch /usr at all. It creates .tgz pkgs in /tmp.

jtsn 11-07-2012 03:46 PM

Quote:

Originally Posted by dugan (Post 4824473)
Well, there's an absolutely massive Linux Thread which largely consists of people trying to get it to work on non-Ubuntu distros...

I suggest creating a Ubuntu chroot using debootstrap.

Alien Bob 11-07-2012 03:47 PM

It looks like the client fails to initialize on Slackware because it does not find pulseaudio... it also needs some magic to let it find a 32-bit libnss3.so on a multilib system, and a symlink in /usr/bin to /sbin/pidof so that the startup script can check for a running Steam client.

And since this is all 32-bit stuff I will have to create compat32 packages for pulseaudio and its few dependencies to try it out.
I will upload a rough steam package soon. I have no SlackBuild yet but I stuck a description of the commands to package the binaries inside its doc directory.

Too bad I entered "Other" instead of "Ubuntu" as the OS I am running... or else I might have gotten into that beta ;-)

Eric

D1ver 11-07-2012 03:51 PM

I can't believe this day is actually here.. I haven't had a chance to download the .deb, and like AlienBob selected 'other' on my beta application so I think I'll be waiting a while.

Looks like a few hurdles to jump over, but nothing we can't sort out.. I'm really looking forward to playing first class games natively!

Alien Bob 11-07-2012 04:00 PM

This is how I created a crude package - note that I run Slackware 14:
Code:

wget http://media.steampowered.com/client/installer/steam.deb
mkdir tmp-steam
cd tmp-steam
ar x ../steam.deb
cd -
mkdir package-steam
cd package-steam
tar xvf ../tmp-steam/data.tar.gz
mkdir install
cd install
tar xvf ../../tmp-steam/control.tar.gz
rm md5sums
mv postinst doinst.sh
cd -
mkdir -p usr/doc/steam
mv install/control usr/doc/steam/
mv usr/share/man usr/
makepkg -l y -c n ../steam-$(date +%Y%m%d)-i486-1alien.txz

I then created this symlink:
Code:

ln -s /sbin/pidof /usr/bin
And on a multilib system you need to have this variable exported in order to make Steam find the 32-bit seamonkey-solibs compat32 package:
Code:

export LD_LIBRARY_PATH="/usr/lib/seamonkey:$LD_LIBRARY_PATH"
And then of course, you will need pulseaudio and is dependencies speex and json-c, all of those are on http:/slackbuilds.org/
Note that before building pulseaudio, the README instructs you to create a "pulse" user and group:
Code:

# groupadd -g 216 pulse
# useradd -u 216 -g pulse -d /var/lib/pulse -m pulse

Eric

jtsn 11-07-2012 04:23 PM

Nice work, Bob.

But I'm afraid, this effort isn't going anywhere: Any Steam App available for Linux in the future will assume, that it will be executed on Ubuntu only and will fail miserably elsewhere. And as a Debian derivative, Ubuntu doesn't support LSB (which requires RPM) very well.

TobiSGD 11-07-2012 04:25 PM

So we have 2012, when this is released it will be 2013, but I still have to infect my system with 32 bit libraries? And as if that wouldn't be enough they decided to make it dependent on the soundsystem with the highest latencies out there?
Wow, Valve, I thought you can do this better than that.

sycamorex 11-07-2012 04:30 PM

Quote:

Originally Posted by TobiSGD (Post 4824519)
So we have 2012, when this is released it will be 2013, but I still have to infect my system with 32 bit libraries? And as if that wouldn't be enough they decided to make it dependent on the soundsystem with the highest latencies out there?
Wow, Valve, I thought you can do this better than that.

Exactly my thoughts on that.


All times are GMT -5. The time now is 04:30 PM.