diff options
Diffstat (limited to 'pkgs/by-name/br/bruno/package.nix')
-rw-r--r-- | pkgs/by-name/br/bruno/package.nix | 190 |
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"; }; } |