diff options
author | TomaSajt | 2024-01-22 10:50:51 +0100 |
---|---|---|
committer | TomaSajt | 2024-01-29 13:36:05 +0100 |
commit | d5762179dfbf798510cd8e7be709a20ff0418352 (patch) | |
tree | 6e1bcfb0177a93666174907fcd5adc1965009355 /pkgs/by-name/sp/spotube | |
parent | d275de7163c0717b2072c0a67ea6919b0e6a9e0d (diff) |
spotube: init at 3.4.1
Diffstat (limited to 'pkgs/by-name/sp/spotube')
-rw-r--r-- | pkgs/by-name/sp/spotube/package.nix | 109 |
1 files changed, 109 insertions, 0 deletions
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 |