A few weeks ago, Valve‘s official Linux binaries for its steamclient got an update. The 1.0.0.76 version is built using an updated Steam client:
- Client timestamp 1676336721 (2023-02-14)
- Steam Runtime version 0.20221019.0
The steamclient package which I create from this release tarball is meant to bootstrap the installation of Valve’s Steam gaming platform on your Slackware computer. The package installs a couple of scripts and a 32-bit Linux runtime based on Ubuntu, and adds a desktop menu entry so that you can easily start Steam.
When you first start ‘steam’ from the menu or from the X terminal command-line, the client scripts will download a larger set of runtime libraries, including 64-bit support. From then on, the steamclient will keep its runtime libraries up-to-date automatically, every time it starts up and connects to the Steam servers.
The Slackware package has a couple of tweaks because we obviously do not have all the expected Ubuntu tools on board. With the help of these tweaks, Steam works out of the box on Slackware – both 32bit and 64-bit with multilib!
If you are using Steam for gaming, be sure to check out its Slackware community. It’s not really chatty in there but last time I checked, the group listed over 400 Slackware users and there’s always a few online and playing.
Enjoy!
Eric
Eric – Thanks for updates. Once setup correctly Steam works great! Wine too! For gaming Slackware has some advantages. One is fewer updates to break things. If one knows what they are doing below is easy.
=============================================
OTB does an excellent video on installing 32 bit libraries. But FIRST there are some key edits for additional repositories and settings.
=============================================
On the video one should take notes for the edits.
https://www.youtube.com/watch?v=IzTtZyzSkv8
=============================================
cd /usr/doc/slackpkg+-1.7.9
Once there…
The shell script command is ./setupmultilib.sh
=============================================
(Multi-Lib Setup)
(see /usr/doc/slackpkg+-1.7.9 for details and notes):
(Commands)
cd /usr/doc/slackpkg+-1.7.9 (setupmultilib.sh)
./setupmultilib.sh
=============================================
Some settings I used.
—8><—
Slackpkg+
https://sourceforge.net/projects/slackpkgplus/
Slackpkg is a good package manager for slackware that help the user to keep updated its installation.
The Slackpkg+ project is a simple plugin that allow the user to add third-party repositories to slackpkg so to use a single tool for keep update the slackware installation and to install non-official packages.
Like slackpkg, slackpkg+ leave unchanged the slackware philosophy becouse the user take full control of installation process.
Slackpkg+ also allow to install and keep updated the alienbob's compat32 libraries so to have a multilib system without download and install it manually.
Slackpkg+ is NOT a new tool with new commands. The user can continue to use the standard slackpkg command line:
# slackpkg update gpg
# slackpkg update
# slackpkg install openjdk
# slackpkg upgrade-all
vim /etc/slackpkg/slackpkgplus.conf
bash-5.1# cat /etc/slackpkg/slackpkgplus.conf
=============================================
# Configuration for slackpkg+.
# Please read manpage: "man slackpkgplus.conf" and documentation /usr/doc/slackpkg+-*/README
# Enable (on) / Disable (off) slackpkg+
SLACKPKGPLUS=on
# set to '0' to never show the download progress bar
# set to '1' to show the bar only in download packages (default)
# set to '2' to always show the download bar
# set to '3' for a debug mode
VERBOSE=1
# Enable TERSE to use a smaller output in installpkg/upgradepkg
USETERSE=on
# Enable a smaller output for slackpkg search. It replace first column with a colorized
# on: [unin] uninstalled, [inst] installed, [upgr] upgrade, [mask] uninstalled/masked
# tiny: [-] uninstalled, [I] installed, [I] upgrade, [M] uninstalled/masked
# off: leave unchanged and black/white.
#TERSESEARCH=tiny
TERSESEARCH=on
# Use proxy. Leave commented to use system settings.
#PROXY=off
#PROXY=:
# By default slackpkg+ deny to install 32bit packages.
#
# Set this flag to ‘on’ allow slackpkg+ to install 32bit packages on a 64bit slackware
# installation (possibly unsafe). Please, do not install both 32 and 64bit of the same
# package to avoid problems, and NEVER upgrade existant 64bit packages with relative 32bit package.
# Do not forget to install the multilibs.
ALLOW32BIT=off
# Enable (on) / Disable (off) the official slackpkg blacklist. May be useful to temporarily skip
# the slackware blacklist. You can also override it from command line:
# ‘USEBL=off slackpkg upgrade-all’
USEBL=on
# Enable (on) / Disable (off) the legacy blacklist system ignoring the improvement
# from slackpkg 15. Some improvement are not useful with thirdy party repositories
# Note that the legacy system does apply it as regex to the entire pkglist row
# repository, name, version, arch, build, fullname, series/path, extension.
LEGACYBL=off
# Add custom option to ‘wget’.
# You can solve the repository indisponibility issue by set a timeout here
# Also add “-q” for super terse output (useful with USETERSE=on)
WGETOPTS=”–timeout=20 –tries=2″
# If you want replace wget with another downloader search DOWNLOADCMD in documentation
# at /usr/doc/slackpkg+-*/README
#DOWNLOADCMD=”wget2 –progress=bar -O”
# Enable (on) / Disable (off) checking disk space to download and install packages. Default to “off”
#CHECKDISKSPACE=on
# Defines if the changelog of any 3rd party repository must be searched in parent URL when not found in base URL.
# Can be set to “on” or “off” (default)
SEARCH_CLOG_INPARENT=on
# Use the cache for metadata files (CHECKSUMS.md5,…). Enable it (on) to speedup the slackpkg update
# process by downloading just new files (see README). Disabled by default (off)
CACHEUPDATE=off
# You can download-only by setting DOWNLOADONLY to ‘on’. You may (you should) also use it in commandline
# for example: “DOWNLOADONLY=on slackpkg upgrade-all”. Useful for large upgrades.
#DOWNLOADONLY=off
# Enable (on) / Disable (off) notification events (see notifymsg.conf)
#ENABLENOTIFY=off
# Enable (on) / Disable (off) the greylist feature. See /etc/slackpkg/greylist
GREYLIST=on
# Defines if commands ‘search’ and ‘file-search’ are case-sensitive (on) or not (off). Default to “on”
SENSITIVE_SEARCH=off
# Defines if command ‘file-search’ does search Whole Word (on) of accept partial words (off). Note that
# you may obtains many many results searching a short partial word
WW_FILE_SEARCH=off
# Select the show order in dialogbox. Available “package” “repository” “tag” “path” “arch”
SHOWORDER=package
# Allow to show more details of the package in slackpkg info . Accept “none”, “basic”, “filelist”
DETAILED_INFO=basic
# Enable (on) / Disable (off) a Strict GPG Check. A repository should contains packages signed
# with the only original GPG-KEY. In some custom repository may be wanted to mix heterogeneous
# packages; to use that repository set Strict GPG Check to off. P.S: a repository can
# contain just ONE gpg-key; you may manually import the other.
STRICTGPG=on
# If two or more repositories contains some same packages, you can specify
# from which repository you prefer to search it.
# The syntax is “:”
# Accepts regular expressions. To give priority to an entire repository use “”
# Examples:
#PKGS_PRIORITY=( restricted:vlc )
# OR
#PKGS_PRIORITY=( myrepo )
#
# if you have two reporitories to give priority you must set both in the same line
#PKGS_PRIORITY=( myrepo restricted:vlc )
#
#
# If you want a multilib system, uncomment the multilib repository and set:
#PKGS_PRIORITY=( multilib )
#
# (Use /usr/doc/slackpkg+-*/setupmultilib.sh to setup a multilib configuration)
# Otherwise you can try to upgrade a package from a repository that contains a package with the
# same tag of the already installed package. Tipically that means to upgrade a package from the
# same author of the already installed package.
# Note that this method may not works properly where two repositories contains a package with the
# same tag.
# Set TAG_PRIORITY to ‘on’ to enable this function
TAG_PRIORITY=off
# List repositories you want to use (defined below)
# remember to launch ‘slackpkg update’ if you modify that row.
#REPOPLUS=( slackpkgplus restricted alienbob slacky )
REPOPLUS=( slackpkgplus multlib restricted alienbob )
# Define mirrors (uncomment one or more mirror; remember to add it to REPOPLUS)
# GPG Note: after adding/renaming a repository, you must to run ‘slackpkg update gpg’
# some repositories as salixos, have a partial GPG support;
# for that repositories you may need to run slackpkg with ‘slackpkg -checkgpg=off …’
# Slackware current – x86_64
#MIRRORPLUS[‘multilib’]=https://slackware.nl/people/alien/multilib/current/
MIRRORPLUS[‘alienbob’]=https://slackware.nl/people/alien/sbrepos/current/x86_64
MIRRORPLUS[‘restricted’]=https://slackware.nl/people/alien/restricted_sbrepos/current/x86_64
# use this to keep the slackpkg+ package updated to the latest stable release
MIRRORPLUS[‘slackpkgplus’]=https://slakfinder.org/slackpkg+15/
# use the development branch to use the mainline version and help develop by reporting bugs.
#MIRRORPLUS[‘slackpkgplus’]=https://slakfinder.org/slackpkg+dev/
# Local repository:
#MIRRORPLUS[‘alienbob’]=file://repositories/alien/sbrepos/current/x86/
#
# Local packages (you do not need metadata nor ‘slackpkg update’ command):
#MIRRORPLUS[‘myrepo’]=dir://repositories/mypackages/
#
# Remote packages (you do not need metadata)
#MIRRORPLUS[‘slackpkgbeta’]=httpsdir://slackpkg.org/beta/
# SBo SlackBuilds. Uncomment it to allow slackpkg to search SlackBuilds on SlackBuilds.org
# This does not repleace sbopkg; slackpkg just report the package, version and url; you may
# download it via ‘slackpkg download ‘ and build it yourself or via sbopkg.
#SBO[‘14.2’]=https://www.slackbuilds.org/slackbuilds/14.2/
#SBO[‘current’]=https://cgit.ponce.cc/slackbuilds/
# Plugin section:
# Here you can enable some optional feature. Please read documentation before enable it.
#
# ZLookKernel can help you to rebuild initrd and reistall lilo/elilo. This feature was
# removed in slackpkg-15.0. ‘enable’ this setting to enable it.
# read /usr/libexec/slackpkg/functions.d/zlookkernel.sh for more information
# It will ask confirmations at every step, unless you will set ‘PLUGIN_ZLOOKKERNEL_PROMPT=off’
# It will manage /boot/vmlinuz by default; if you use kernel generic, please set
# the PLUGIN_ZLOOKKERNEL_IMAGE=/boot/vmlinuz-generic to manage it
#PLUGIN_ZLOOKKERNEL=disable
#PLUGIN_ZLOOKKERNEL_PROMPT=on
#PLUGIN_ZLOOKKERNEL_IMAGE=/boot/vmlinuz
#
# ZChangeLog track all repository changes everytime you run ‘slackpkg update’
# It write the changelog at /var/lib/slackpkg/RepoChangeLog.txt
# ‘enable’ this setting to enable it. Also set ‘PLUGIN_ZCHANGELOGS_SHOW=on’ to print
# the changes in standard output at the end of ‘update’ process.
# read /usr/libexec/slackpkg/functions.d/zchangelog.sh for more information
#PLUGIN_ZCHANGELOG=disable
#PLUGIN_ZCHANGELOG_SHOW=off
#
#
# Supported Repositories (see /usr/doc/slackpkg+-* for details and notes):
#
#slackpkgplus: https://slakfinder.org/slackpkg+{,dev,1.7,15}/
#multilib: https://slackware.nl/people/alien/multilib/{14.2,current}/
#alienbob: https://slackware.nl/people/alien/sbrepos/{14.2,current}/{x86,x86_64}/
#ktown: https://slackware.nl/alien-kde/{14.2,current}/5/{x86,x86_64}/
#restricted: https://slackware.nl/people/alien/restricted_sbrepos/{14.2,current}/{x86,x86_64}/
#slacky: https://slacky.eu/repository/slackware{,64}-{14.2}/
#mleddesktop: https://slackware.uk/microlinux/desktop-{14.2}-{32,64}bit/
#mledextras: https://slackware.uk/microlinux/extras-{14.2}-{32,64}bit/
#mles: https://slackware.uk/microlinux/server-{14.2}-{32,64}bit/
#msb: https://slackware.uk/msb/{14.2,current}/{1.18,1.24,latest}/{x86,x86_64}/
#csb: https://slackware.uk/csb/{14.2,current}/{x86,x86_64}/
#slackers: https://slack.conraid.net/repository/slackware64-current{-testing,-extra}/
#studioware: https://slackware.uk/studioware/{14.2}
#slackonly: https://packages.slackonly.com/pub/packages/{14.2,current}-{x86,x86_64}/
#rlworkman: https://rlworkman.net/pkgs/{14.2,current}/
#slackel: http://www.slackel.gr/repo/{i486,x86_64}/current/
#slint: https://slackware.uk/slint/{i586,x86_64}/slint-{14.2,14.2.1,testing,wip}/
#salixos: https://download.salixos.org/{i486,x86_64}/{14.2,15.0}/
#salixextra: https://download.salixos.org/{i486,x86_64}/extra-{14.2,15.0}/
bash-5.1#
(After edits…)
# slackpkg update gpg
# slackpkg update
slackpkg search (package)
slackpkg info (package) gives you a list of dependencies.
slackpkg install
(Dependency Check)
ls /var/log/packages/ | grep OpenAL
slackpkg search
[unin] restricted : handbrake-1.4.1-x86_64-1alien
[mask] alienbob : handbrake-1.4.1-x86_64-1alien
(Multi-Lib Setup)
(see /usr/doc/slackpkg+-1.7.9 for details and notes):
(Commands)
cd /usr/doc/slackpkg+-1.7.9 (setupmultilib.sh)
./setupmultilib.sh
I don’t know what it is exactly that you’re trying to say with your post, but for simply pasting the whole conf file in your post maybe next time a link to pastebin would be better?
“I don’t know what it is exactly that you’re trying to say with your post, but for simply pasting the whole conf file in your post maybe next time a link to pastebin would be better?”
What “exactly” was said. “Once setup correctly Steam works great! Wine too! For gaming Slackware has some advantages. One is fewer updates to break things. If one knows what they are doing below is easy.”
I think you sound like a critic? 🙂
It’s an example edit which works. Have you ever done LFS or Gentoo edits for compiling. In Gentoo I keep my make.conf (/etc/portage/make.conf) for each CPU processor I use for each compile. And I manage eight computers through ssh.
Maybe if you would read some the edits in the /etc/slackpkg/slackpkgplus.conf in that “paste” you might learn something. But then maybe not?
Also the executable shell script setupmultilib.sh (provided in the Slackware Install) can be run from the command line located in /usr/doc/slackpkg+-1.7.9 does ALL of the required work installing 32 bit libraries for steam and any 32 bit gaming on Slackware. And work it does.
But then again who would of thought of that because it’s not obvious?
Later! … And in your case MUCH later. By the way there is NOT much value in posting here other than receiving update notifications. 🙂
+1. Most of us who read here already have multilib working, and Alien Bob, himself, has a few great posts on the subject.
Hi AlienBob, thanks for all your Slackware work over the years.
I recently purchased a desktop that I was hoping to use as a number cruncher by day and a gaming machine by night. To that end, I installed multilib and steam, following the instructions pretty closely.
Steam runs, and can download games, but the games themselves don’t run. I’ve tried three games and the trial version of 3D mark. They all launch, but seem to stall on the game’s splash screen.
I ran the mass convert script on a local copy of Slackware 32, but still no joy. I’m going to post a question on LinuxQuestions, but first I thought I’d ask here to see if anyone has any advice on where to look or what to try.
The stderr output has lots of complaints about the preloader failing to reserve range 00..00010000-00…00110000, lots of notes about installing breakpad exception handlers, and occasionally I see ERROR: ld.so object … from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. I also see hat same error with wrong ELF class ELFCLASS64.
One thing that might be breaking things is that I am running this all on an f2fs file system. I can’t see why that would make a difference though.
Thanks
Hi James. My assumption is that you have an issue with your graphics drivers. I can’t imagine that the choice of filesystem is the root cause.
I would suggest that you open a new topic on https://www.linuxquestions.org/questions/slackware-14/ and get feedback about your question and how to solve it.
This blog is not the right platform to discuss it.
Yep. I also think it is the graphics drivers. I suspect I’m not setting up the amd drivers properly in 32 bit land, as I see no -compat type package for the xf86 amdgpu driver.
I only asked here first in case an expert could spot a likely issue, of the “—Oh I’ve seen that before do X” variety.
James, you could try running “convertpkg-compat32 -i” against the 32bit xf86-video-amdgpu package and install the resulting “compat32” package which gets created in /tmp .
If that makes your games work it’s sufficient ground for me to add the xf86-video-amdgpu package to my “compat32” package set.
Usually, gamers install a binary blob to drive their AMD or NVIDIA cards but it would be nice if you can play games just with the libraries provided by regular Slackware.
I did try that yesterday (before I posted) and it did not work
I think i might be missing some firmware or something –the binary blob– that is needed to get the games to run once the game is launched. As I said, steam comes up fine and is able to show splash screens, but the games freeze or crash.
I tried using the conty container last night too, and got the exact same behavior. I’m sure someone on LinuxQuestions will provide insights.
If it is something that can be done with basic slackware packages I will report back.