Latest Comments by Grogan
Steam not working right on Arch Linux? It's an issue with FreeType and there's a fix
5 Sep 2021 at 9:54 pm UTC Likes: 2
5 Sep 2021 at 9:54 pm UTC Likes: 2
The "regression" is all Steam, not Arch. It's not even freetype that was (still is, on non-beta) the problem, it was their own stupidly bundled libharfbuzz in steam-runtime-heavy and linux runtime soldier. See, the new freetype is no longer compatible with the old harfbuzz API. This is Valve's mistake... what do they think is going to happen? System freetype, old bundled harfbuzz. That's even a circular dependency, freetype linked against harfbuzz, harfbuzz linked against freetype.
The clue was this:
steamwebhelper: symbol lookup error: /usr/lib/libfreetype.so.6: undefined symbol: hb_ot_tags_from_script_and_language
That's a harfbuzz symbol. Note that with later beta clients updates, it didn't print this error anywhere on console, so I was lucky to get this clue when the problem first surfaced.
I had upgraded to freetype 2.11 long before Arch did. I keep my systems binary compatible because I compile some things to run on all my systems, so when my other systems (LFS, Slackware) get an upgrade for something like that, all do.
I tried forcing Steam to load my libharfbuzz with LD_PRELOAD and it worked for the UI and the client worked correctly, but bombed out on Proton because it was being overridden in the runtime soldier bwrap container.
So what I ended up doing was dropping in the previous libfreetype.so.6 from my freetype 2.10.4 package and setting LD_LIBRARY_PATH. That worked until Valve finally fixed it with a somewhat newer libharfbuzz (from Dec. 2019 lol... they are still trying to support old Ubuntu) and probably a recompile of the embedded Chrome.
Also note, it was only the 64 bit parts of Steam that had this problem. I used lsof to help me solve this problem and Steam was correctly hooking both lib32-freetype and lib32-harfbuzz from /usr/lib32 and the Steam client does not bundle them.
I think that everyone using Steam on Linux should be using the beta client (to ensure the latest proton bits etc.) but anyone not, that wants to fix this, instead of downgrading freetype, could simply stick their previous libfreetype.so.6 (copy the real library and rename or symlink) to a directory that doesn't have any other libraries and start Steam with "LD_LIBRARY_PATH=/path/to/directory steam" or better yet, to the wrapper script used to start it (e.g. /usr/bin/steam), "export LD_LIBRARY_PATH=/path/to/directory" which is how I did it.
The clue was this:
steamwebhelper: symbol lookup error: /usr/lib/libfreetype.so.6: undefined symbol: hb_ot_tags_from_script_and_language
That's a harfbuzz symbol. Note that with later beta clients updates, it didn't print this error anywhere on console, so I was lucky to get this clue when the problem first surfaced.
I had upgraded to freetype 2.11 long before Arch did. I keep my systems binary compatible because I compile some things to run on all my systems, so when my other systems (LFS, Slackware) get an upgrade for something like that, all do.
I tried forcing Steam to load my libharfbuzz with LD_PRELOAD and it worked for the UI and the client worked correctly, but bombed out on Proton because it was being overridden in the runtime soldier bwrap container.
So what I ended up doing was dropping in the previous libfreetype.so.6 from my freetype 2.10.4 package and setting LD_LIBRARY_PATH. That worked until Valve finally fixed it with a somewhat newer libharfbuzz (from Dec. 2019 lol... they are still trying to support old Ubuntu) and probably a recompile of the embedded Chrome.
Also note, it was only the 64 bit parts of Steam that had this problem. I used lsof to help me solve this problem and Steam was correctly hooking both lib32-freetype and lib32-harfbuzz from /usr/lib32 and the Steam client does not bundle them.
I think that everyone using Steam on Linux should be using the beta client (to ensure the latest proton bits etc.) but anyone not, that wants to fix this, instead of downgrading freetype, could simply stick their previous libfreetype.so.6 (copy the real library and rename or symlink) to a directory that doesn't have any other libraries and start Steam with "LD_LIBRARY_PATH=/path/to/directory steam" or better yet, to the wrapper script used to start it (e.g. /usr/bin/steam), "export LD_LIBRARY_PATH=/path/to/directory" which is how I did it.
- Blender change the Anthropic AI funding deal, with discussions planned for AI Policies
- Here's the top Steam Deck games for April 2026
- Steam Survey for April 2026 shows Linux still trending well
- SteamOS 3.8.3 Beta gets ready for the Steam Machine and Steam Controller
- Linux Mint begin shipping HWE (Hardware Enablement) ISOs for better hardware support
- > See more over 30 days here
Recently Updated
- Feedback needed - future website updates
- Liam Dawe - Steam Deck desktop mode localization
- on_en_a_gros - Why most people are approaching the xz-attack wrong.
- LoudTechie - Lutris alternatives
- sourpuz - Welcome back to the GamingOnLinux Forum
- sourpuz - See more posts
How to setup OpenMW for modern Morrowind on Linux / SteamOS and Steam Deck
How to install Hollow Knight: Silksong mods on Linux, SteamOS and Steam Deck