1{
2 lib,
3 stdenv,
4 fetchFromGitLab,
5 cmake,
6 protobuf,
7}:
8
9stdenv.mkDerivation rec {
10 pname = "goldberg-emu";
11 version = "0.2.5";
12
13 src = fetchFromGitLab {
14 owner = "mr_goldberg";
15 repo = "goldberg_emulator";
16 rev = version;
17 hash = "sha256-goOgMNjtDmIKOAv9sZwnPOY0WqTN90LFJ5iEp3Vkzog=";
18 };
19
20 # It attempts to install windows-only libraries which we never build
21 patches = [ ./dont-install-unsupported.patch ];
22
23 postPatch = ''
24 # Fix gcc-13 build failure due to missing <string> include.
25 sed -e '1i #include <string>' -i dll/settings.h
26 '';
27
28 nativeBuildInputs = [ cmake ];
29 buildInputs = [ protobuf ];
30
31 cmakeFlags = [
32 "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/share/goldberg"
33 ];
34
35 preFixup = ''
36 mkdir -p $out/{bin,lib}
37 chmod +x $out/share/goldberg/tools/find_interfaces.sh
38
39 ln -s $out/share/goldberg/libsteam_api.so $out/lib
40 ln -s $out/share/goldberg/lobby_connect/lobby_connect $out/bin
41 ln -s $out/share/goldberg/tools/generate_interfaces_file $out/bin
42 ln -s $out/share/goldberg/tools/find_interfaces.sh $out/bin/find_interfaces
43 '';
44
45 meta = with lib; {
46 broken = stdenv.hostPlatform.isDarwin;
47 homepage = "https://gitlab.com/Mr_Goldberg/goldberg_emulator";
48 changelog = "https://gitlab.com/Mr_Goldberg/goldberg_emulator/-/releases";
49 description = "Program that emulates steam online features";
50 longDescription = ''
51 Steam emulator that emulates steam online features. Lets you play games that
52 use the steam multiplayer apis on a LAN without steam or an internet connection.
53 '';
54 mainProgram = "lobby_connect";
55 license = licenses.lgpl3Only;
56 platforms = platforms.unix;
57 maintainers = [ ];
58 };
59}