diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/glava/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/misc/glava/default.nix | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/glava/default.nix b/nixpkgs/pkgs/applications/misc/glava/default.nix new file mode 100644 index 000000000000..a0af30ac84b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/glava/default.nix @@ -0,0 +1,92 @@ +{ lib, stdenv, writeScript, fetchFromGitHub +, libGL, libX11, libXext, python3, libXrandr, libXrender, libpulseaudio, libXcomposite +, enableGlfw ? false, glfw, runtimeShell }: + +let + inherit (lib) optional makeLibraryPath; + + wrapperScript = writeScript "glava" '' + #!${runtimeShell} + case "$1" in + --copy-config|-C) + # The binary would symlink it, which won't work in Nix because the + # garbage collector will eventually remove the original files after + # updates + echo "Nix wrapper: Copying glava config to ~/.config/glava" + cp -r --no-preserve=all @out@/etc/xdg/glava ~/.config/glava + ;; + *) + exec @out@/bin/.glava-unwrapped "$@" + esac + ''; +in + stdenv.mkDerivation rec { + pname = "glava"; + version = "1.6.3"; + + src = fetchFromGitHub { + owner = "wacossusca34"; + repo = "glava"; + rev = "v${version}"; + sha256 = "0kqkjxmpqkmgby05lsf6c6iwm45n33jk5qy6gi3zvjx4q4yzal1i"; + }; + + buildInputs = [ + libX11 + libXext + libXrandr + libXrender + libpulseaudio + libXcomposite + ] ++ optional enableGlfw glfw; + + nativeBuildInputs = [ + python3 + ]; + + preConfigure = '' + for f in $(find -type f);do + substituteInPlace $f \ + --replace /etc/xdg $out/etc/xdg + done + + substituteInPlace Makefile \ + --replace '$(DESTDIR)$(SHADERDIR)' '$(SHADERDIR)' + + substituteInPlace Makefile \ + --replace 'unknown' 'v${version}' + + export CFLAGS="-march=native" + ''; + + makeFlags = optional (!enableGlfw) "DISABLE_GLFW=1"; + + installFlags = [ + "DESTDIR=$(out)" + ]; + + fixupPhase = '' + mkdir -p $out/bin + mv $out/usr/bin/glava $out/bin/.glava-unwrapped + rm -rf $out/usr + + patchelf \ + --set-rpath "$(patchelf --print-rpath $out/bin/.glava-unwrapped):${makeLibraryPath [ libGL ]}" \ + $out/bin/.glava-unwrapped + + substitute ${wrapperScript} $out/bin/glava --subst-var out + chmod +x $out/bin/glava + ''; + + meta = with lib; { + description = '' + OpenGL audio spectrum visualizer + ''; + homepage = "https://github.com/wacossusca34/glava"; + platforms = platforms.linux; + license = licenses.gpl3; + maintainers = with maintainers; [ + eadwu + ]; + }; + } |