etcher: 1.5.60 -> 1.5.86

This commit is contained in:
Pavol Rusnak 2020-04-27 22:22:56 +02:00
parent b45e6f22f3
commit 897a1e6393
No known key found for this signature in database
GPG Key ID: 91F3B339B9A02A3D

View File

@ -1,25 +1,19 @@
{ lib { stdenv
, stdenv
, fetchurl , fetchurl
, gcc-unwrapped , gcc-unwrapped
, dpkg , dpkg
, polkit , polkit
, utillinux
, bash , bash
, nodePackages , nodePackages
, electron_3 , makeWrapper
, gtk3 , electron_7
, wrapGAppsHook
}: }:
let let
libPath = lib.makeLibraryPath [
# for libstdc++.so.6
gcc-unwrapped.lib
];
sha256 = { sha256 = {
"x86_64-linux" = "0zb9j34dz7ybjix018bm8g0b6kilw9300q4ahcm22p0ggg528dh7"; "x86_64-linux" = "1yvqi86bw0kym401zwknhwq9041fxg047sbj3aydnfcqf11vrrmk";
"i686-linux" = "0wsv4mvwrvsaz1pwiqs94b3854h5l8ff2dbb1ybxmvwjbfrkdcqc"; "i686-linux" = "12lghzhsl16h3jvzm3vw4hrly32fz99z6rdmybl8viralrxy8mb8";
}."${stdenv.system}"; }."${stdenv.system}";
arch = { arch = {
@ -27,26 +21,22 @@ let
"i686-linux" = "i386"; "i686-linux" = "i386";
}."${stdenv.system}"; }."${stdenv.system}";
in stdenv.mkDerivation rec { in
stdenv.mkDerivation rec {
pname = "etcher"; pname = "etcher";
version = "1.5.60"; version = "1.5.86";
src = fetchurl { src = fetchurl {
url = "https://github.com/balena-io/etcher/releases/download/v${version}/balena-etcher-electron_${version}_${arch}.deb"; url = "https://github.com/balena-io/etcher/releases/download/v${version}/balena-etcher-electron_${version}_${arch}.deb";
inherit sha256; inherit sha256;
}; };
buildInputs = [
gtk3
];
nativeBuildInputs = [
wrapGAppsHook
];
dontBuild = true; dontBuild = true;
dontConfigure = true; dontConfigure = true;
nativeBuildInputs = [ makeWrapper ];
unpackPhase = '' unpackPhase = ''
${dpkg}/bin/dpkg-deb -x $src . ${dpkg}/bin/dpkg-deb -x $src .
''; '';
@ -55,33 +45,33 @@ in stdenv.mkDerivation rec {
# along with some other paths # along with some other paths
patchPhase = '' patchPhase = ''
${nodePackages.asar}/bin/asar extract opt/balenaEtcher/resources/app.asar tmp ${nodePackages.asar}/bin/asar extract opt/balenaEtcher/resources/app.asar tmp
# Use Nix(OS) paths # use Nix(OS) paths
sed -i "s|/usr/bin/pkexec|/usr/bin/pkexec', '/run/wrappers/bin/pkexec|" tmp/node_modules/sudo-prompt/index.js sed -i "s|/usr/bin/pkexec|/usr/bin/pkexec', '/run/wrappers/bin/pkexec|" tmp/node_modules/sudo-prompt/index.js
sed -i 's|/bin/bash|${bash}/bin/bash|' tmp/node_modules/sudo-prompt/index.js sed -i 's|/bin/bash|${bash}/bin/bash|' tmp/node_modules/sudo-prompt/index.js
sed -i "s|process.resourcesPath|'$out/opt/balenaEtcher/resources/'|" tmp/generated/gui.js sed -i "s|'lsblk'|'${utillinux}/bin/lsblk'|" tmp/node_modules/drivelist/js/lsblk/index.js
sed -i "s|process.resourcesPath|'$out/share/${pname}/resources/'|" tmp/generated/gui.js
${nodePackages.asar}/bin/asar pack tmp opt/balenaEtcher/resources/app.asar ${nodePackages.asar}/bin/asar pack tmp opt/balenaEtcher/resources/app.asar
rm -rf tmp rm -rf tmp
# Fix up .desktop file
substituteInPlace usr/share/applications/balena-etcher-electron.desktop \
--replace "/opt/balenaEtcher/balena-etcher-electron" "$out/bin/balena-etcher-electron"
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/bin runHook preInstall
cp -r opt $out/
cp -r usr/share $out/
# We'll use our Nixpkgs electron_3 instead mkdir -p $out/bin $out/share/${pname}
rm $out/opt/balenaEtcher/balena-etcher-electron
ln -s ${electron_3}/bin/electron $out/bin/balena-etcher-electron cp -a usr/share/* $out/share
cp -a opt/balenaEtcher/{locales,resources} $out/share/${pname}
substituteInPlace $out/share/applications/balena-etcher-electron.desktop \
--replace 'Exec=/opt/balenaEtcher/balena-etcher-electron' 'Exec=${pname}'
runHook postInstall
''; '';
preFixup = '' postFixup = ''
gappsWrapperArgs+=( makeWrapper ${electron_7}/bin/electron $out/bin/${pname} \
--add-flags $out/opt/balenaEtcher/resources/app.asar --add-flags $out/share/${pname}/resources/app.asar \
--prefix LD_LIBRARY_PATH : ${libPath} --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ gcc-unwrapped.lib ]}"
)
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {