drawio: unbreak on darwin

This commit is contained in:
Weijia Wang 2023-10-19 16:25:31 +02:00
parent 7c9cc5a6e5
commit e59b866c4e

View File

@ -4,7 +4,6 @@
, fetchYarnDeps
, makeDesktopItem
, copyDesktopItems
, desktopToDarwinBundle
, fixup_yarn_lock
, makeWrapper
, nodejs
@ -30,12 +29,13 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
copyDesktopItems
fixup_yarn_lock
makeWrapper
nodejs
yarn
] ++ lib.optional stdenv.isDarwin desktopToDarwinBundle;
] ++ lib.optionals (!stdenv.isDarwin) [
copyDesktopItems
];
ELECTRON_SKIP_BINARY_DOWNLOAD = true;
@ -54,9 +54,15 @@ stdenv.mkDerivation rec {
buildPhase = ''
runHook preBuild
'' + lib.optionalString stdenv.isDarwin ''
cp -R ${electron}/Applications/Electron.app Electron.app
chmod -R u+w Electron.app
export CSC_IDENTITY_AUTO_DISCOVERY=false
sed -i "/afterSign/d" electron-builder-linux-mac.json
'' + ''
yarn --offline run electron-builder --dir \
--config electron-builder-linux-mac.json \
-c.electronDist=${electron}/libexec/electron \
-c.electronDist=${if stdenv.isDarwin then "." else "${electron}/libexec/electron"} \
-c.electronVersion=${electron.version}
runHook postBuild
@ -65,6 +71,13 @@ stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
'' + lib.optionalString stdenv.isDarwin ''
mkdir -p $out/{Applications,bin}
mv dist/mac*/draw.io.app $out/Applications
# Symlinking `draw.io` doesn't work; seems to look for files in the wrong place.
makeWrapper $out/Applications/draw.io.app/Contents/MacOS/draw.io $out/bin/drawio
'' + lib.optionalString (!stdenv.isDarwin) ''
mkdir -p "$out/share/lib/drawio"
cp -r dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/drawio"
@ -74,6 +87,7 @@ stdenv.mkDerivation rec {
--add-flags "$out/share/lib/drawio/resources/app.asar" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--inherit-argv0
'' + ''
runHook postInstall
'';
@ -98,6 +112,5 @@ stdenv.mkDerivation rec {
changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
maintainers = with maintainers; [ qyliss darkonion0 ];
platforms = platforms.darwin ++ platforms.linux;
broken = stdenv.isDarwin;
};
}