forked from mirrors/nixpkgs
cc2037307b
Fixes a bug that was noticed during an automated version bump. What was needed was to add an LD_LIBRARY_PATH entry for stdenv.cc.cc in makeWrapper ``` --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ] }" \ ``` The error as seen in developer tools console was: ``` /nix/store/d4b2xcpdf4y4hspbwrmjdz540m493894-simplenote-1.12.0/opt/Simplenote/resources/electron.asar/renderer/init.js:158 Unable to load preload script: /nix/store/d4b2xcpdf4y4hspbwrmjdz540m493894-simplenote-1.12.0/opt/Simplenote/resources/app.asar/desktop/preload.js (anonymous) @ /nix/store/d4b2xcpdf4y4hspbwrmjdz540m493894-simplenote-1.12.0/opt/Simplenote/resources/electron.asar/renderer/init.js:158 /nix/store/d4b2xcpdf4y4hspbwrmjdz540m493894-simplenote-1.12.0/opt/Simplenote/resources/electron.asar/renderer/init.js:159 Error: libstdc++.so.6: cannot open shared object file: No such file or directory at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:160:31) at Object.Module._extensions..node (internal/modules/cjs/loader.js:722) at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:169:18) at Module.load (internal/modules/cjs/loader.js:602) at tryModuleLoad (internal/modules/cjs/loader.js:541) at Function.Module._load (internal/modules/cjs/loader.js:533) at Module.require (internal/modules/cjs/loader.js:640) at require (internal/modules/cjs/helpers.js:20) at Object.<anonymous> (/nix/store/d4b2xcpdf4y4hspbwrmjdz540m493894-simplenote-1.12.0/opt/Simplenote/resources/app.asar/node_modules/@paulcbetts/spellchecker/lib/spellchecker.js:3) at Object.<anonymous> (/nix/store/d4b2xcpdf4y4hspbwrmjdz540m493894-simplenote-1.12.0/opt/Simplenote/resources/app.asar/node_modules/@paulcbetts/spellchecker/lib/spellchecker.js:116) ``` To (help) anyone that may find have errors like this in the future: makeWrapper requiring the makeLibraryPath with stdenv.cc.cc is fairly common for electron apps. At least ones that use dpkg on prebuilt debian .deb files (my `bitwarden` derivation requires it, too) that use gappsWrapperArgs Thanks @ryantm / r-ryantm and @worldofpeace :) Reference: https://github.com/NixOS/nixpkgs/pull/76421#pullrequestreview-336359695
97 lines
2 KiB
Nix
97 lines
2 KiB
Nix
{ atomEnv
|
|
, autoPatchelfHook
|
|
, dpkg
|
|
, fetchurl
|
|
, makeDesktopItem
|
|
, makeWrapper
|
|
, stdenv
|
|
, udev
|
|
, wrapGAppsHook
|
|
}:
|
|
|
|
let
|
|
inherit (stdenv.hostPlatform) system;
|
|
|
|
throwSystem = throw "Unsupported system: ${system}";
|
|
|
|
pname = "simplenote";
|
|
|
|
version = "1.12.0";
|
|
|
|
sha256 = {
|
|
x86_64-linux = "0y9b4haaj7qxr92wnwacziljqrkf4vlyqq3rvis8ribq6zr5b24w";
|
|
}.${system} or throwSystem;
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "The simplest way to keep notes";
|
|
homepage = "https://github.com/Automattic/simplenote-electron";
|
|
license = licenses.gpl2;
|
|
maintainers = with maintainers; [
|
|
kiwi
|
|
];
|
|
platforms = [
|
|
"x86_64-linux"
|
|
];
|
|
};
|
|
|
|
linux = stdenv.mkDerivation rec {
|
|
inherit pname version meta;
|
|
|
|
src = fetchurl {
|
|
url =
|
|
"https://github.com/Automattic/simplenote-electron/releases/download/"
|
|
+ "v${version}/Simplenote-linux-${version}-amd64.deb";
|
|
inherit sha256;
|
|
};
|
|
|
|
desktopItem = makeDesktopItem {
|
|
categories = "Development";
|
|
comment = "Simplenote for Linux";
|
|
desktopName = "Simplenote";
|
|
exec = "simplenote %U";
|
|
icon = "simplenote";
|
|
name = "simplenote";
|
|
startupNotify = "true";
|
|
type = "Application";
|
|
};
|
|
|
|
dontBuild = true;
|
|
dontConfigure = true;
|
|
dontPatchELF = true;
|
|
dontWrapGApps = true;
|
|
|
|
nativeBuildInputs = [
|
|
autoPatchelfHook
|
|
dpkg
|
|
makeWrapper
|
|
wrapGAppsHook
|
|
];
|
|
|
|
buildInputs = atomEnv.packages;
|
|
|
|
unpackPhase = "dpkg-deb -x $src .";
|
|
|
|
installPhase = ''
|
|
mkdir -p "$out/bin"
|
|
cp -R "opt" "$out"
|
|
cp -R "usr/share" "$out/share"
|
|
chmod -R g-w "$out"
|
|
|
|
mkdir -p "$out/share/applications"
|
|
cp "${desktopItem}/share/applications/"* "$out/share/applications"
|
|
'';
|
|
|
|
runtimeDependencies = [
|
|
udev.lib
|
|
];
|
|
|
|
postFixup = ''
|
|
makeWrapper $out/opt/Simplenote/simplenote $out/bin/simplenote \
|
|
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ] }" \
|
|
"''${gappsWrapperArgs[@]}"
|
|
'';
|
|
};
|
|
|
|
in
|
|
linux
|