Merge pull request #319759 from gepbird/bruno-darwin
bruno: patch out giflib dependency, format
This commit is contained in:
@@ -1,30 +1,28 @@
|
||||
{ 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";
|
||||
@@ -44,22 +42,25 @@ buildNpmPackage' rec {
|
||||
npmDepsHash = "sha256-157hm7h5FWuOuxoo6WTtlMPq5LcRZIsSt5NDg0pvim8=";
|
||||
npmFlags = [ "--legacy-peer-deps" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
(writeShellScriptBin "phantomjs" "echo 2.1.1")
|
||||
pkg-config
|
||||
] ++ lib.optionals (! stdenv.isDarwin) [
|
||||
makeWrapper
|
||||
copyDesktopItems
|
||||
];
|
||||
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
|
||||
];
|
||||
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
|
||||
${
|
||||
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'," ""
|
||||
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
|
||||
''}
|
||||
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
|
||||
'';
|
||||
@@ -153,7 +172,14 @@ buildNpmPackage' rec {
|
||||
homepage = "https://www.usebruno.com";
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ gepbird kashw2 lucasew mattpolzin water-sucks redyf ];
|
||||
maintainers = with maintainers; [
|
||||
gepbird
|
||||
kashw2
|
||||
lucasew
|
||||
mattpolzin
|
||||
water-sucks
|
||||
redyf
|
||||
];
|
||||
mainProgram = "bruno";
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user