about summary refs log tree commit diff
path: root/pkgs/by-name/br/bruno/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/br/bruno/package.nix')
-rw-r--r--pkgs/by-name/br/bruno/package.nix190
1 files changed, 108 insertions, 82 deletions
diff --git a/pkgs/by-name/br/bruno/package.nix b/pkgs/by-name/br/bruno/package.nix
index 6c2e418b0f951..3a62debde8247 100644
--- a/pkgs/by-name/br/bruno/package.nix
+++ b/pkgs/by-name/br/bruno/package.nix
@@ -1,65 +1,66 @@
-{ lib
-
-, stdenv
-, fetchFromGitHub
-, buildNpmPackage
-, nix-update-script
-, electron
-, writeShellScriptBin
-, makeWrapper
-, copyDesktopItems
-, giflib
-, makeDesktopItem
-, pkg-config
-, pixman
-, cairo
-, pango
-, npm-lockfile-fix
-, overrideSDK
-, darwin
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildNpmPackage,
+  nix-update-script,
+  electron,
+  writeShellScriptBin,
+  makeWrapper,
+  copyDesktopItems,
+  makeDesktopItem,
+  pkg-config,
+  pixman,
+  cairo,
+  pango,
+  npm-lockfile-fix,
+  overrideSDK,
+  darwin,
 }:
 
 let
   # fix for: https://github.com/NixOS/nixpkgs/issues/272156
-  buildNpmPackage' =
-    buildNpmPackage.override {
-      stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
-    };
+  buildNpmPackage' = buildNpmPackage.override {
+    stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+  };
 in
 buildNpmPackage' rec {
   pname = "bruno";
-  version = "1.20.0";
+  version = "1.24.0";
 
   src = fetchFromGitHub {
     owner = "usebruno";
     repo = "bruno";
     rev = "v${version}";
-    hash = "sha256-NnRM+ERz5pViQ+rIRXAH3puFdhccpgQMQ+ICZQELA18=";
+    hash = "sha256-+rnZid+2E3xP6GTHKXki+MeRuoU8gAB34/MVyKu9oEQ=";
 
     postFetch = ''
       ${lib.getExe npm-lockfile-fix} $out/package-lock.json
     '';
   };
 
-  npmDepsHash = "sha256-aw4jOvlfZHCRrgoXT69XrMYe40YXULrfbVG1pQAFGr4=";
+  npmDepsHash = "sha256-/1/QPKjSgJJDtmUipgbiVR+Buea9cXO+HvICfKVX/2g=";
   npmFlags = [ "--legacy-peer-deps" ];
 
-  nativeBuildInputs = [
-    (writeShellScriptBin "phantomjs" "echo 2.1.1")
-    pkg-config
-  ] ++ lib.optionals (! stdenv.isDarwin) [
-    makeWrapper
-    copyDesktopItems
-  ];
-
-  buildInputs = [
-    pixman
-    cairo
-    pango
-  ] ++ lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk_11_0.frameworks.CoreText
-    giflib
-  ];
+  nativeBuildInputs =
+    [
+      (writeShellScriptBin "phantomjs" "echo 2.1.1")
+      pkg-config
+    ]
+    ++ lib.optionals (!stdenv.isDarwin) [
+      makeWrapper
+      copyDesktopItems
+    ];
+
+  buildInputs =
+    [
+      pixman
+      cairo
+      pango
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk_11_0.frameworks.CoreText
+    ];
 
   desktopItems = [
     (makeDesktopItem {
@@ -78,7 +79,15 @@ buildNpmPackage' rec {
       --replace-fail 'if [ "$1" == "snap" ]; then' 'exit 0; if [ "$1" == "snap" ]; then'
   '';
 
-  ELECTRON_SKIP_BINARY_DOWNLOAD=1;
+  ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
+
+  # remove giflib dependency
+  npmRebuildFlags = [ "--ignore-scripts" ];
+  preBuild = ''
+    substituteInPlace node_modules/canvas/binding.gyp \
+      --replace-fail "'with_gif%': '<!(node ./util/has_lib.js gif)'" "'with_gif%': 'false'"
+    npm rebuild
+  '';
 
   dontNpmBuild = true;
   postBuild = ''
@@ -91,27 +100,32 @@ buildNpmPackage' rec {
 
     pushd packages/bruno-electron
 
-    ${if stdenv.isDarwin then ''
-    cp -r ${electron}/Applications/Electron.app ./
-    find ./Electron.app -name 'Info.plist' | xargs -d '\n' chmod +rw
-
-    substituteInPlace electron-builder-config.js \
-      --replace-fail "identity: 'Anoop MD (W7LPPWA48L)'" 'identity: null' \
-      --replace-fail "afterSign: 'notarize.js'," ""
-
-    npm exec electron-builder -- \
-      --dir \
-      --config electron-builder-config.js \
-      -c.electronDist=./ \
-      -c.electronVersion=${electron.version} \
-      -c.npmRebuild=false
-    '' else ''
-    npm exec electron-builder -- \
-      --dir \
-      -c.electronDist=${electron}/libexec/electron \
-      -c.electronVersion=${electron.version} \
-      -c.npmRebuild=false
-    ''}
+    ${
+      if stdenv.isDarwin then
+        ''
+          cp -r ${electron}/Applications/Electron.app ./
+          find ./Electron.app -name 'Info.plist' | xargs -d '\n' chmod +rw
+
+          substituteInPlace electron-builder-config.js \
+            --replace-fail "identity: 'Anoop MD (W7LPPWA48L)'" 'identity: null' \
+            --replace-fail "afterSign: 'notarize.js'," ""
+
+          npm exec electron-builder -- \
+            --dir \
+            --config electron-builder-config.js \
+            -c.electronDist=./ \
+            -c.electronVersion=${electron.version} \
+            -c.npmRebuild=false
+        ''
+      else
+        ''
+          npm exec electron-builder -- \
+            --dir \
+            -c.electronDist=${electron}/libexec/electron \
+            -c.electronVersion=${electron.version} \
+            -c.npmRebuild=false
+        ''
+    }
 
     popd
   '';
@@ -122,26 +136,31 @@ buildNpmPackage' rec {
     runHook preInstall
 
 
-    ${if stdenv.isDarwin then ''
-    mkdir -p $out/Applications
+    ${
+      if stdenv.isDarwin then
+        ''
+          mkdir -p $out/Applications
 
-    cp -R packages/bruno-electron/out/**/Bruno.app $out/Applications/
-    '' else ''
-    mkdir -p $out/opt/bruno $out/bin
+          cp -R packages/bruno-electron/out/**/Bruno.app $out/Applications/
+        ''
+      else
+        ''
+          mkdir -p $out/opt/bruno $out/bin
 
-    cp -r packages/bruno-electron/dist/linux*-unpacked/{locales,resources{,.pak}} $out/opt/bruno
+          cp -r packages/bruno-electron/dist/linux*-unpacked/{locales,resources{,.pak}} $out/opt/bruno
 
-    makeWrapper ${lib.getExe electron} $out/bin/bruno \
-      --add-flags $out/opt/bruno/resources/app.asar \
-      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
-      --set-default ELECTRON_IS_DEV 0 \
-      --inherit-argv0
+          makeWrapper ${lib.getExe electron} $out/bin/bruno \
+            --add-flags $out/opt/bruno/resources/app.asar \
+            --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
+            --set-default ELECTRON_IS_DEV 0 \
+            --inherit-argv0
 
-    for s in 16 32 48 64 128 256 512 1024; do
-      size=${"$"}{s}x$s
-      install -Dm644 $src/packages/bruno-electron/resources/icons/png/$size.png $out/share/icons/hicolor/$size/apps/bruno.png
-    done
-    ''}
+          for s in 16 32 48 64 128 256 512 1024; do
+            size=${"$"}{s}x$s
+            install -Dm644 $src/packages/bruno-electron/resources/icons/png/$size.png $out/share/icons/hicolor/$size/apps/bruno.png
+          done
+        ''
+    }
 
     runHook postInstall
   '';
@@ -151,9 +170,16 @@ buildNpmPackage' rec {
   meta = with lib; {
     description = "Open-source IDE For exploring and testing APIs";
     homepage = "https://www.usebruno.com";
-    inherit (electron.meta) platforms;
+    platforms = platforms.linux ++ platforms.darwin;
     license = licenses.mit;
-    maintainers = with maintainers; [ gepbird kashw2 lucasew mattpolzin water-sucks ];
+    maintainers = with maintainers; [
+      gepbird
+      kashw2
+      lucasew
+      mattpolzin
+      water-sucks
+      redyf
+    ];
     mainProgram = "bruno";
   };
 }