From 1aa2b72a7bdbda58b9924026375f915a32ccedd1 Mon Sep 17 00:00:00 2001 From: Alice Carroll Date: Sat, 15 Jun 2024 22:37:59 +0300 Subject: revolt-desktop: darwin support --- .../instant-messengers/revolt-desktop/default.nix | 109 +++++++++++++-------- 1 file changed, 66 insertions(+), 43 deletions(-) (limited to 'pkgs/applications/networking') diff --git a/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix b/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix index d995f81406cbc..6a7461f3b13ea 100644 --- a/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix @@ -1,62 +1,85 @@ -{ stdenv +{ stdenvNoCC , lib , fetchurl +, fetchzip , appimageTools , makeWrapper , electron }: - -stdenv.mkDerivation rec { +(stdenvNoCC.mkDerivation { pname = "revolt-desktop"; version = "1.0.6"; - - src = fetchurl { - url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-linux.AppImage"; - sha256 = "sha256-Wsm6ef2Reenq3/aKGaP2yzlOuLKaxKtRHCLLMxvWUUY="; + dontConfigure = true; + dontBuild = true; + meta = with lib; { + description = "Open source user-first chat platform"; + homepage = "https://revolt.chat/"; + changelog = "https://github.com/revoltchat/desktop/releases/tag/v${version}"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ + heyimnova + caralice + ]; + platforms = platforms.linux ++ platforms.darwin; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + mainProgram = "revolt-desktop"; }; + nativeBuildInputs = [ makeWrapper ]; +}).overrideAttrs + ( + final: prev: + let + inherit (prev) pname version; + in + if stdenvNoCC.isLinux then + { + src = fetchurl { + url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-linux.AppImage"; + sha256 = "sha256-Wsm6ef2Reenq3/aKGaP2yzlOuLKaxKtRHCLLMxvWUUY="; + }; - appimageContents = appimageTools.extractType2 { - name = "${pname}-${version}"; - inherit src; - }; + appimageContents = appimageTools.extractType2 { inherit (final) src pname version; }; - dontUnpack = true; - dontConfigure = true; - dontBuild = true; + dontUnpack = true; - nativeBuildInputs = [ - makeWrapper - ]; + installPhase = '' + runHook preInstall - installPhase = '' - runHook preInstall + mkdir -p $out/bin $out/share/{applications,revolt-desktop} - mkdir -p $out/bin $out/share/{applications,revolt-desktop} + cp -a ${final.appimageContents}/{locales,resources} $out/share/${pname} + cp -a ${final.appimageContents}/revolt-desktop.desktop $out/share/applications/${pname}.desktop + cp -a ${final.appimageContents}/usr/share/icons $out/share/icons - cp -a ${appimageContents}/{locales,resources} $out/share/${pname} - cp -a ${appimageContents}/revolt-desktop.desktop $out/share/applications/${pname}.desktop - cp -a ${appimageContents}/usr/share/icons $out/share/icons + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' - substituteInPlace $out/share/applications/${pname}.desktop \ - --replace 'Exec=AppRun' 'Exec=${pname}' + runHook postInstall + ''; - runHook postInstall - ''; + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/resources/app.asar \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" + ''; + } + else + assert stdenvNoCC.isDarwin; + { + src = fetchzip { + url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-${version}-mac.zip"; + hash = "sha256-XxmKcIfJtHfi6SahrRHMeTAuyVqiN9Yhayjis10vD2w="; + stripRoot = false; + }; - postFixup = '' - makeWrapper ${electron}/bin/electron $out/bin/${pname} \ - --add-flags $out/share/${pname}/resources/app.asar \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" - ''; + installPhase = '' + runHook preInstall - meta = with lib; { - description = "Open source user-first chat platform"; - homepage = "https://revolt.chat/"; - changelog = "https://github.com/revoltchat/desktop/releases/tag/v${version}"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ heyimnova ]; - platforms = platforms.linux; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - mainProgram = "revolt-desktop"; - }; -} + mkdir -p "$out/Applications/" "$out/bin/" + mv Revolt.app "$out/Applications/" + makeWrapper "$out/Applications/Revolt.app/Contents/MacOS/Revolt" "$out/bin/${pname}" + + runHook postInstall + ''; + } + ) -- cgit 1.4.1 From da2e0f92dc9a0d25394540d184630bce21fcf6a8 Mon Sep 17 00:00:00 2001 From: Alice Carroll Date: Sun, 23 Jun 2024 14:27:29 +0300 Subject: revolt-desktop: migrate to pkgs/by-name --- .../instant-messengers/revolt-desktop/default.nix | 85 ---------------------- pkgs/by-name/re/revolt-desktop/package.nix | 85 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 - 3 files changed, 85 insertions(+), 87 deletions(-) delete mode 100644 pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix create mode 100644 pkgs/by-name/re/revolt-desktop/package.nix (limited to 'pkgs/applications/networking') diff --git a/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix b/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix deleted file mode 100644 index 6a7461f3b13ea..0000000000000 --- a/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ stdenvNoCC -, lib -, fetchurl -, fetchzip -, appimageTools -, makeWrapper -, electron -}: -(stdenvNoCC.mkDerivation { - pname = "revolt-desktop"; - version = "1.0.6"; - dontConfigure = true; - dontBuild = true; - meta = with lib; { - description = "Open source user-first chat platform"; - homepage = "https://revolt.chat/"; - changelog = "https://github.com/revoltchat/desktop/releases/tag/v${version}"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - heyimnova - caralice - ]; - platforms = platforms.linux ++ platforms.darwin; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - mainProgram = "revolt-desktop"; - }; - nativeBuildInputs = [ makeWrapper ]; -}).overrideAttrs - ( - final: prev: - let - inherit (prev) pname version; - in - if stdenvNoCC.isLinux then - { - src = fetchurl { - url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-linux.AppImage"; - sha256 = "sha256-Wsm6ef2Reenq3/aKGaP2yzlOuLKaxKtRHCLLMxvWUUY="; - }; - - appimageContents = appimageTools.extractType2 { inherit (final) src pname version; }; - - dontUnpack = true; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin $out/share/{applications,revolt-desktop} - - cp -a ${final.appimageContents}/{locales,resources} $out/share/${pname} - cp -a ${final.appimageContents}/revolt-desktop.desktop $out/share/applications/${pname}.desktop - cp -a ${final.appimageContents}/usr/share/icons $out/share/icons - - substituteInPlace $out/share/applications/${pname}.desktop \ - --replace 'Exec=AppRun' 'Exec=${pname}' - - runHook postInstall - ''; - - postFixup = '' - makeWrapper ${electron}/bin/electron $out/bin/${pname} \ - --add-flags $out/share/${pname}/resources/app.asar \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" - ''; - } - else - assert stdenvNoCC.isDarwin; - { - src = fetchzip { - url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-${version}-mac.zip"; - hash = "sha256-XxmKcIfJtHfi6SahrRHMeTAuyVqiN9Yhayjis10vD2w="; - stripRoot = false; - }; - - installPhase = '' - runHook preInstall - - mkdir -p "$out/Applications/" "$out/bin/" - mv Revolt.app "$out/Applications/" - makeWrapper "$out/Applications/Revolt.app/Contents/MacOS/Revolt" "$out/bin/${pname}" - - runHook postInstall - ''; - } - ) diff --git a/pkgs/by-name/re/revolt-desktop/package.nix b/pkgs/by-name/re/revolt-desktop/package.nix new file mode 100644 index 0000000000000..6a7461f3b13ea --- /dev/null +++ b/pkgs/by-name/re/revolt-desktop/package.nix @@ -0,0 +1,85 @@ +{ stdenvNoCC +, lib +, fetchurl +, fetchzip +, appimageTools +, makeWrapper +, electron +}: +(stdenvNoCC.mkDerivation { + pname = "revolt-desktop"; + version = "1.0.6"; + dontConfigure = true; + dontBuild = true; + meta = with lib; { + description = "Open source user-first chat platform"; + homepage = "https://revolt.chat/"; + changelog = "https://github.com/revoltchat/desktop/releases/tag/v${version}"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ + heyimnova + caralice + ]; + platforms = platforms.linux ++ platforms.darwin; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + mainProgram = "revolt-desktop"; + }; + nativeBuildInputs = [ makeWrapper ]; +}).overrideAttrs + ( + final: prev: + let + inherit (prev) pname version; + in + if stdenvNoCC.isLinux then + { + src = fetchurl { + url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-linux.AppImage"; + sha256 = "sha256-Wsm6ef2Reenq3/aKGaP2yzlOuLKaxKtRHCLLMxvWUUY="; + }; + + appimageContents = appimageTools.extractType2 { inherit (final) src pname version; }; + + dontUnpack = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/{applications,revolt-desktop} + + cp -a ${final.appimageContents}/{locales,resources} $out/share/${pname} + cp -a ${final.appimageContents}/revolt-desktop.desktop $out/share/applications/${pname}.desktop + cp -a ${final.appimageContents}/usr/share/icons $out/share/icons + + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/resources/app.asar \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" + ''; + } + else + assert stdenvNoCC.isDarwin; + { + src = fetchzip { + url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-${version}-mac.zip"; + hash = "sha256-XxmKcIfJtHfi6SahrRHMeTAuyVqiN9Yhayjis10vD2w="; + stripRoot = false; + }; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/Applications/" "$out/bin/" + mv Revolt.app "$out/Applications/" + makeWrapper "$out/Applications/Revolt.app/Contents/MacOS/Revolt" "$out/bin/${pname}" + + runHook postInstall + ''; + } + ) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 894cc0d9c2391..825c286657fb9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12095,8 +12095,6 @@ with pkgs; raysession = python3Packages.callPackage ../applications/audio/raysession {}; - revolt-desktop = callPackage ../applications/networking/instant-messengers/revolt-desktop { }; - rbw = callPackage ../tools/security/rbw { }; remarshal = with python3Packages; toPythonApplication remarshal; -- cgit 1.4.1