Skip to content

Commit

Permalink
bruno: package from source (WIP)
Browse files Browse the repository at this point in the history
Signed-off-by: lucasew <lucas59356@gmail.com>
  • Loading branch information
lucasew committed Oct 20, 2023
1 parent fff9bb3 commit 91387d8
Showing 1 changed file with 68 additions and 35 deletions.
103 changes: 68 additions & 35 deletions pkgs/by-name/br/bruno/package.nix
Original file line number Diff line number Diff line change
@@ -1,52 +1,85 @@
{ lib
, stdenv
, fetchurl
, autoPatchelfHook
, dpkg
, wrapGAppsHook
, alsa-lib
, gtk3
, mesa
, nspr
, nss
, systemd

, fetchFromGitHub
, buildNpmPackage
, nix-update-script
, electron_21-bin
, writeShellScriptBin
, makeWrapper
}:

stdenv.mkDerivation rec {
let
electron = electron_21-bin;
in

buildNpmPackage rec {
pname = "bruno";
version = "0.17.0";
version = "0.20.0";

src = fetchurl {
url = "https://github.com/usebruno/bruno/releases/download/v${version}/bruno_${version}_amd64_linux.deb";
hash = "sha256-4FF9SEgWuIPQSarOBTaEvgdgRTkR1caRYr/bjfFmTLE=";
src = fetchFromGitHub {
# owner = "usebruno";
owner = "lucasew";
# repo = "bruno";
repo = "CONTRIB-bruno";
# rev = "master";
rev = "6d0eadae82a93d2c60bd3749ba00f3b3606c3219";
hash = "sha256-nCIe5KghTjW32eIo3bv58nm9up1zbHNnqqMuM8PSgEs=";
# rev = "v${version}";
};
npmDepsHash = "sha256-CUou2uflKFB4L2UtJv18zjHoCiGhmZ5VA7EZfEsSOds=";
# npmWorkspace = "packages/bruno-electron";

nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook ];

buildInputs = [
alsa-lib
gtk3
mesa
nspr
nss
nativeBuildInputs = [
(writeShellScriptBin "phantomjs" "echo 2.1.1")
makeWrapper
];

runtimeDependencies = [ (lib.getLib systemd) ];
postPatch = ''
substituteInPlace scripts/build-electron.sh \
--replace 'if [ "$1" == "snap" ]; then' 'exit 0; echo foi; if [ "$1" == "snap" ]; then'
'';

ELECTRON_SKIP_BINARY_DOWNLOAD=1;

dontNpmBuild = true;
postBuild = ''
npm run build --workspace=packages/bruno-graphql-docs
npm run build --workspace=packages/bruno-app
npm run build --workspace=packages/bruno-query
bash scripts/build-electron.sh
pushd packages/bruno-electron
npm exec electron-builder -- \
--dir \
-c.electronDist=${electron}/libexec/electron \
-c.electronVersion=${electron.version} \
-c.npmRebuild=false
popd
'';

npmPackFlags = [ "--ignore-scripts" ];

installPhase = ''
runHook preInstall
mkdir -p "$out/bin"
cp -R opt $out
cp -R "usr/share" "$out/share"
ln -s "$out/opt/Bruno/bruno" "$out/bin/bruno"
chmod -R g-w "$out"
runHook postInstall
'';
postFixup = ''
substituteInPlace "$out/share/applications/bruno.desktop" \
--replace "/opt/Bruno/bruno" "$out/bin/bruno"
mkdir -p $out/opt/bruno $out/bin
pushd packages/bruno-electron/dist/linux-unpacked
cp -r locales resources{,.pak} $out/opt/bruno
popd
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
runHook postInstall
'';

passthru.updateScript = nix-update-script { };
Expand Down

0 comments on commit 91387d8

Please sign in to comment.