From d5762179dfbf798510cd8e7be709a20ff0418352 Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Mon, 22 Jan 2024 10:50:51 +0100 Subject: spotube: init at 3.4.1 --- pkgs/by-name/sp/spotube/package.nix | 109 ++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 pkgs/by-name/sp/spotube/package.nix diff --git a/pkgs/by-name/sp/spotube/package.nix b/pkgs/by-name/sp/spotube/package.nix new file mode 100644 index 000000000000..8b0a057daec8 --- /dev/null +++ b/pkgs/by-name/sp/spotube/package.nix @@ -0,0 +1,109 @@ +{ lib +, stdenv +, fetchurl + +, autoPatchelfHook +, dpkg +, makeWrapper +, undmg +, wrapGAppsHook + +, libappindicator +, libnotify +, libsecret +, mpv-unwrapped +, xdg-user-dirs +}: + +let + pname = "spotube"; + version = "3.4.1"; + + meta = { + description = "An open source, cross-platform Spotify client compatible across multiple platforms"; + longDescription = '' + Spotube is an open source, cross-platform Spotify client compatible across + multiple platforms utilizing Spotify's data API and YouTube (or Piped.video or JioSaavn) + as an audio source, eliminating the need for Spotify Premium + ''; + downloadPage = "https://github.com/KRTirtho/spotube/releases"; + homepage = "https://spotube.netlify.app/"; + license = lib.licenses.bsdOriginal; + mainProgram = "spotube"; + maintainers = with lib.maintainers; [ tomasajt ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + }; + + fetchArtifact = { filename, hash }: + fetchurl { + url = "https://github.com/KRTirtho/spotube/releases/download/v${version}/${filename}"; + inherit hash; + }; + + darwin = stdenv.mkDerivation { + inherit pname version meta; + + src = fetchArtifact { + filename = "Spotube-macos-universal.dmg"; + hash = "sha256-VobLCxsmE5kGIlDDa3v5xIHkw2x2YV14fgHHcDb+bLo="; + }; + + sourceRoot = "."; + + nativeBuildInputs = [ undmg ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/Applications $out/bin + cp -r spotube.app $out/Applications + ln -s $out/Applications/spotube.app/Contents/MacOS/spotube $out/bin/spotube + runHook postInstall + ''; + }; + + linux = stdenv.mkDerivation { + inherit pname version meta; + + src = fetchArtifact { + filename = "Spotube-linux-x86_64.deb"; + hash = "sha256-NEGhzNz0E8jK2NPmigzoPAvYcU7zN9YHikuXHpzWfx0="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + makeWrapper + wrapGAppsHook + ]; + + buildInputs = [ + libappindicator + libnotify + libsecret + mpv-unwrapped + ]; + + dontWrapGApps = true; + + installPhase = '' + runHook preInstall + mkdir -p $out + cp -r usr/* $out + runHook postInstall + ''; + + preFixup = '' + patchelf $out/share/spotube/lib/libmedia_kit_native_event_loop.so \ + --replace-needed libmpv.so.1 libmpv.so + ''; + + postFixup = '' + makeWrapper $out/share/spotube/spotube $out/bin/spotube \ + "''${gappsWrapperArgs[@]}" \ + --prefix LD_LIBRARY_PATH : $out/share/spotube/lib:${lib.makeLibraryPath [ mpv-unwrapped ]} \ + --prefix PATH : ${lib.makeBinPath [ xdg-user-dirs ]} + ''; + }; +in +if stdenv.isDarwin then darwin else linux -- cgit 1.4.1