Hi all-
I need some help figuring out how to run a packaged GOG game from a few years ago. The game is the Star Trek 25th Anniversary point and click adventure, and GOG packages it up alongside a DOSBox instance that can run it. Of course, it’s linked to expect things in an FHS arrangement, so I did a bit of work to make it run under NixOS.
In April 2016, I wrote this shell.nix
file to go alongside the downloaded files:
{ pkgs ? import <nixpkgs> {} }:
(pkgs.buildFHSUserEnv {
name = "gog-env";
targetPkgs = pkgs: (with pkgs; [
alsaLib
SDL_sound
SDL_net
SDL
libpng12
zlib
]) ++ (with pkgs.xorg; [
libX11
]);
}).env
From what I remember, this worked: I could do nix-shell
and then run the start script that came with the game. I tried this again just now and I get this error message:
Running Star Trek - 25th Anniversary
Starting DOSBox
/home/roni/Downloads/Star Trek - 25th Anniversary/dosbox/dosbox_x86_64: relocation error: /usr/lib/libc.so.6: symbol __tunable_get_val, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
Done.
So it seems like glibc has updated beyond compatibility with a DOSBox from two years ago. To try to fix it, I tried this:
{ pkgs ? import <nixpkgs> {} }:
let
snapshot = import (fetchTarball {
url = https://github.com/NixOS/nixpkgs-channels/archive/660806066abc4a64ac44b53b2b1a20f5ab4d920b.tar.gz;
sha256 = "1zv6scshygxaxbmyxkx01xnkh5s79ixl40b1sic5b2g5k7wbwg5v";
}) {};
in
(snapshot.buildFHSUserEnv {
name = "gog-env";
targetPkgs = pkgs: (with snapshot; [
alsaLib
SDL_sound
SDL_net
SDL
libpng12
zlib
]) ++ (with snapshot.xorg; [
libX11
]);
}).env
But this gives the exact same error as before. Note that I’m using snapshot
everywhere to try to grab packages from April 2016 (I’m even using snapshot.buildFHSUserEnv
to try to recreate the exact working conditions).
Also, I tried steam-run
but wasn’t able to get that to work (I got errors about libasound not being found, which is related to the fact that alsaLib
is in my shell.nix
files above).
Can someone help me figure out how to solve this glibc problem and/or help me generally get things “from the past” to work? More specifically, if someone has advice on getting DOSBox / GOG games / steam-run to work that would also be great.
Thanks!
roni