biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / video / freetube / default.nix
blobffe9beea5cd8e455c09617d6818f667ccd6ad615
2   stdenv,
3   lib,
4   fetchurl,
5   appimageTools,
6   makeWrapper,
7   electron,
8   nixosTests,
9 }:
11 stdenv.mkDerivation rec {
12   pname = "freetube";
13   version = "0.21.3";
15   src = fetchurl {
16     url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${version}-beta/freetube_${version}_amd64.AppImage";
17     hash = "sha256-sg/ycFo4roOJ2sW4naRCE6dwGXVQFzF8uwAZQkS2EY4=";
18   };
20   passthru.tests = nixosTests.freetube;
22   appimageContents = appimageTools.extractType2 { inherit pname version src; };
24   dontUnpack = true;
25   dontConfigure = true;
26   dontBuild = true;
28   nativeBuildInputs = [ makeWrapper ];
30   installPhase = ''
31     runHook preInstall
33     mkdir -p $out/bin $out/share/${pname} $out/share/applications $out/share/icons/hicolor/scalable/apps
35     cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
36     cp -a ${appimageContents}/freetube.desktop $out/share/applications/${pname}.desktop
37     cp -a ${appimageContents}/usr/share/icons/hicolor/scalable/freetube.svg $out/share/icons/hicolor/scalable/apps
39     substituteInPlace $out/share/applications/${pname}.desktop \
40       --replace 'Exec=AppRun' 'Exec=${pname}'
42     runHook postInstall
43   '';
45   postFixup = ''
46     makeWrapper ${electron}/bin/electron $out/bin/${pname} \
47       --add-flags $out/share/${pname}/resources/app.asar \
48       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}"
49   '';
51   meta = {
52     description = "Open Source YouTube app for privacy";
53     homepage = "https://freetubeapp.io/";
54     license = lib.licenses.agpl3Only;
55     maintainers = with lib.maintainers; [
56       ryneeverett
57       alyaeanyx
58     ];
59     inherit (electron.meta) platforms;
60     mainProgram = "freetube";
61   };