1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Proof In Steam's Mac Client Of Linux Support

Michael Larabel

Published on 21 April 2010
Written by Michael Larabel
Page 1 of 1 - 59 Comments

We have our hands on the bash launcher used by Valve's Steam client for Mac OS X that was recently announced -- along with the Source Engine for OS X -- and is currently in closed beta. While such scripts are usually insignificant, there is something interesting within it and that is explicit support for Linux.

In early March the news broke that Steam and the Source Engine were coming to Mac OS X. Not only was Valve bringing over its flagship game engine and their very popular game delivery platform, but also they are bringing many of their popular games over to Apple's Mac OS X. This is using an OpenGL renderer for the Source Engine (compared to the past where the engine was limited to Microsoft's DirectX) and going forward they plan to provide Mac OS X versions at the same time as their Windows game releases. From the customer's perspective, if you already own a Steam-acquired game on Windows, you can download the game on Mac OS X too via Steam without facing any additional charges.

Following that news last month that finally makes Mac OS X a viable gaming platform, there were some voicing their claims about the Linux support being in place too. Of course, this all comes years after Valve was looking for a Linux software engineer to port games to Linux, after we were exposed to information that the Source Engine would come to Linux, and then finding Linux libraries in the Left 4 Dead game. Valve Software though refrained from commenting on any Linux support following the Mac OS X announcement.

This afternoon we have more proof of the existence of a Linux client of Steam, which would mean the Source Engine on Linux too. Right now, the Mac OS X version is in closed beta testing, but a new source independent from our Valve information in the past has supplied us with the launcher that is used to launch Steam on Mac OS X. Since it is a bash script, the source is cleanly visible and Linux is explicitly mentioned. The launcher is pasted below and one of the key parts is in bold.

#!/bin/bash

# figure out the absolute path to the script being run a bit
# non-obvious, the ${0%/*} pulls the path out of $0, cd's into the
# specified directory, then uses $PWD to figure out where that
# directory lives - and all this in a subshell, so we don't affect
# $PWD

STEAMROOT=$(cd "${0%/*}" && echo $PWD)

#determine platform
UNAME=`uname`
if [ "$UNAME" == "Darwin" ]; then
   PLATFORM=osx32
   # prepend our lib path to LD_LIBRARY_PATH
   export DYLD_LIBRARY_PATH="${STEAMROOT}"/${PLATFORM}:$DYLD_LIBRARY_PATH
elif [ "$UNAME" == "Linux" ]; then
   PLATFORM=linux32
   # prepend our lib path to LD_LIBRARY_PATH
   export LD_LIBRARY_PATH="${STEAMROOT}"/${PLATFORM}:$LD_LIBRARY_PATH
fi

if [ -z $STEAMEXE ]; then
  STEAMEXE=steam
fi

ulimit -n 2048

# and launch steam
cd "$STEAMROOT"

STATUS=42
while [ $STATUS -eq 42 ]; do
        ${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/${STEAMEXE} $@
        STATUS=$?
        # are we running osx?
        if [ $STATUS -eq 42 -a ${PLATFORM} == "osx32" -a -f Info.plist ]; then
                # are we running from in a bundle?
                exec open "${STEAMROOT}"/../..
        fi
done
exit $STATUS

For those not into scripting, this Steam launcher checks the platform so that the appropriate library path can be added to the respective environmental variable for loading Steam's shared libraries needed by the client and then it goes ahead and launches the Steam library while there is another conditional platform check in there too. This is within the Mac OS X version of Steam and is not used by the Windows version for obvious reasons. However, Linux is clearly supported in there, which would be absolutely useless if they were not preparing portions of this to run on Linux. This script could have been more easily hard-coded to be specific to Mac OS X, but it was not, and it boasts Linux compatibility.

This though is the only script we have access to at this point, so we are not able to dissect the Mac OS X Steam client any further yet. Now we just need to figure out when Valve plans to finally announce/release the Steam delivery mechanism and Source-powered games for Linux... This has been a long-time coming after exclusively reporting two years ago that Steam/Source would be coming to the penguin platform.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. Intel Xeon E5-1680 v3 & E5-2687W v3 Compared To The Core i7 5960X On Linux
  2. Intel 120GB 530 Series SSD Linux Performance
  3. Btrfs/EXT4/XFS/F2FS RAID 0/1/5/6/10 Linux Benchmarks On Four SSDs
  4. AMD's Windows Catalyst Driver Remains Largely Faster Than Linux Drivers
Latest Linux Articles
  1. NVIDIA vs. Nouveau Drivers With Linux 3.18 + Mesa 10.4-devel
  2. Is The Open-Source NVIDIA Driver Fast Enough For Steam On Linux Gaming?
  3. Linux 3.18 File-System Performance Minimally Changed But Possible Regressions
  4. AMD Radeon Gallium3D Is Catching Up & Sometimes Beating Catalyst On Linux
Latest Linux News
  1. PowerVR SGX Driver Code Gets Leaked
  2. V2 Of KDBUS Published For Linux Kernel Review
  3. VirtualBox 4.3.20 Arrives, Still No Sign Of VirtualBox 4.4
  4. Scientific Linux 6.6 vs. Scientific Linux 7.0 Benchmarks
  5. Qualcomm Looks To Get Into The ARM Server Business
  6. HHVM 3.4 Adds New Features, Support
  7. More Radeon Driver Changes Queued For Linux 3.19
  8. Unigine 2.0 Alpha 2 Adds C# Support
  9. FFmpeg Is Returning To Ubuntu With 15.04 Release
  10. Linux Version Of Civilization: Beyond Earth Still Coming Along
Latest Forum Discussions
  1. Cant get working Kaveri APU - A10-7850k
  2. Script for Fan Speed Control
  3. Roadmap to Catalyst 14.10 ?
  4. Debian Init System Coupling Vote Results
  5. The Slides Announcing The New "AMDGPU" Kernel Driver
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  7. Debian Developer Resigns From The Systemd Maintainership Team
  8. Ubuntu Developers Still Thinking What To Do About Adobe Flash Support