diff --git a/pkgs/default.nix b/pkgs/default.nix index 3247751..36607a6 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -7,4 +7,6 @@ final: prev: { version = "unstable-2022-04-28"; src = final.sources.kmscon.src; }); + + olympus = prev.callPackage ./olympus.nix { }; } diff --git a/pkgs/olympus.nix b/pkgs/olympus.nix new file mode 100644 index 0000000..2d61ec5 --- /dev/null +++ b/pkgs/olympus.nix @@ -0,0 +1,47 @@ +# Taken from https://github.com/VergeDX/config-nixpkgs/blob/899f13750c9c1795d455eeee9cb28d3aa74a0866/packages/gui/olympus.nix +{ stdenv +, fetchzip +, unzip +, makeDesktopItem +, buildFHSUserEnv +}: +let + olympus = stdenv.mkDerivation rec { + pname = "olympus"; + version = "2623"; + + # https://everestapi.github.io/ + src = fetchzip { + url = "https://dev.azure.com/EverestAPI/Olympus/_apis/build/builds/${version}/artifacts?artifactName=linux.main&$format=zip#linux.main.zip"; + hash = "sha256-wQWUNAA7ohQ7pCXhndvGlvwQBKisTYGhdKMJeXlv1qs="; + }; + + buildInputs = [ unzip ]; + installPhase = '' + mkdir -p "$out/opt/olympus/" + mv dist.zip "$out/opt/olympus/" && cd "$out/opt/olympus/" + unzip dist.zip && rm dist.zip + mkdir $out && echo XDG_DATA_HOME=$out + echo y | XDG_DATA_HOME="$out/share/" bash install.sh + sed -i "/ldconfig/d" ./love && rm ./usr/lib/libSDL2-2.0.so.0 + sed -i "s/Exec=.*/Exec=olympus %u/g" ../../share/applications/Olympus.desktop + ''; + }; +in +buildFHSUserEnv { + name = "olympus"; + runScript = "${olympus}/opt/olympus/olympus"; + targetPkgs = pkgs: [ + pkgs.freetype + pkgs.zlib + pkgs.SDL2 + pkgs.curl + pkgs.libpulseaudio + pkgs.gtk3 + pkgs.glib + ]; + + # https://github.com/EverestAPI/Olympus/blob/main/lib-linux/olympus.desktop + # https://stackoverflow.com/questions/8822097/how-to-replace-a-whole-line-with-sed + extraInstallCommands = ''cp -r "${olympus}/share/" $out''; +}