bump logseq
This commit is contained in:
parent
a6ca006c14
commit
6a22e605ce
2 changed files with 52 additions and 43 deletions
|
@ -3,9 +3,13 @@
|
|||
stdenv,
|
||||
fetchurl,
|
||||
appimageTools,
|
||||
unzip,
|
||||
makeWrapper,
|
||||
# graphs will not sync without matching upstream's major electron version
|
||||
# Notice: graphs will not sync without matching upstream's major electron version
|
||||
# the specific electron version is set at top-level file to preserve override interface.
|
||||
# whenever updating this package also sync electron version at top-level file.
|
||||
electron_27,
|
||||
autoPatchelfHook,
|
||||
git,
|
||||
nix-update-script,
|
||||
overrideSrc ? null,
|
||||
|
@ -22,62 +26,73 @@ in {
|
|||
else
|
||||
(fetchurl {
|
||||
url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
|
||||
hash = "sha256-F3YbqgvL04P0nXaIVkJlCq/z8hUE0M0UutkBs2omuBE=";
|
||||
hash = "sha256-F3YbqgvL04P0nXaIVkJlCq/z8hUE0M0UutkBs2omuBe=";
|
||||
name = "${pname}-${version}.AppImage";
|
||||
});
|
||||
|
||||
appimageContents = appimageTools.extract {
|
||||
inherit pname src version;
|
||||
};
|
||||
nativeBuildInputs =
|
||||
[makeWrapper]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [autoPatchelfHook]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [unzip];
|
||||
buildInputs = [stdenv.cc.cc.lib];
|
||||
|
||||
dontUnpack = true;
|
||||
dontUnpack = stdenv.hostPlatform.isLinux;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
installPhase =
|
||||
''
|
||||
runHook preInstall
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux (
|
||||
let
|
||||
appimageContents = appimageTools.extract {inherit pname src version;};
|
||||
in ''
|
||||
mkdir -p $out/bin $out/share/logseq $out/share/applications
|
||||
cp -a ${appimageContents}/{locales,resources} $out/share/logseq
|
||||
cp -a ${appimageContents}/Logseq.desktop $out/share/applications/logseq.desktop
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
# remove the `git` in `dugite` because we want the `git` in `nixpkgs`
|
||||
chmod +w -R $out/share/logseq/resources/app/node_modules/dugite/git
|
||||
chmod +w $out/share/logseq/resources/app/node_modules/dugite
|
||||
rm -rf $out/share/logseq/resources/app/node_modules/dugite/git
|
||||
chmod -w $out/share/logseq/resources/app/node_modules/dugite
|
||||
|
||||
mkdir -p $out/bin $out/share/${pname} $out/share/applications
|
||||
cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
|
||||
cp -a ${appimageContents}/Logseq.desktop $out/share/applications/${pname}.desktop
|
||||
mkdir -p $out/share/pixmaps
|
||||
ln -s $out/share/logseq/resources/app/icons/logseq.png $out/share/pixmaps/logseq.png
|
||||
|
||||
# remove the `git` in `dugite` because we want the `git` in `nixpkgs`
|
||||
if test -e $out/share/${pname}/resources/app/node_modules/dugite/git; then
|
||||
chmod +w -R $out/share/${pname}/resources/app/node_modules/dugite/git
|
||||
chmod +w $out/share/${pname}/resources/app/node_modules/dugite
|
||||
rm -rf $out/share/${pname}/resources/app/node_modules/dugite/git
|
||||
chmod -w $out/share/${pname}/resources/app/node_modules/dugite
|
||||
fi
|
||||
substituteInPlace $out/share/applications/logseq.desktop \
|
||||
--replace Exec=Logseq Exec=logseq \
|
||||
--replace Icon=Logseq Icon=logseq
|
||||
''
|
||||
)
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir -p $out/{Applications/Logseq.app,bin}
|
||||
cp -R . $out/Applications/Logseq.app
|
||||
makeWrapper $out/Applications/Logseq.app/Contents/MacOS/Logseq $out/bin/logseq
|
||||
''
|
||||
+ ''
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
mkdir -p $out/share/pixmaps
|
||||
ln -s $out/share/${pname}/resources/app/icons/logseq.png $out/share/pixmaps/${pname}.png
|
||||
|
||||
substituteInPlace $out/share/applications/${pname}.desktop \
|
||||
--replace Exec=Logseq Exec=${pname} \
|
||||
--replace Icon=Logseq Icon=${pname}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
# set the env "LOCAL_GIT_DIRECTORY" for dugite so that we can use the git in nixpkgs
|
||||
makeWrapper ${electron_27}/bin/electron $out/bin/${pname} \
|
||||
makeWrapper ${electron_27}/bin/electron $out/bin/logseq \
|
||||
--set "LOCAL_GIT_DIRECTORY" ${git} \
|
||||
--add-flags $out/share/${pname}/resources/app \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
|
||||
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [stdenv.cc.cc.lib]}"
|
||||
--add-flags $out/share/logseq/resources/app \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script {};
|
||||
|
||||
meta = {
|
||||
description = "A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base";
|
||||
description = "Local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base";
|
||||
homepage = "https://github.com/logseq/logseq";
|
||||
changelog = "https://github.com/logseq/logseq/releases/tag/${version}";
|
||||
license = lib.licenses.agpl3Plus;
|
||||
maintainers = with lib.maintainers; [];
|
||||
platforms = ["x86_64-linux" "aarch64-linux"];
|
||||
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
|
||||
maintainers = with lib.maintainers; [cheeseecake];
|
||||
platforms = ["x86_64-linux" "aarch64-linux"] ++ lib.platforms.darwin;
|
||||
mainProgram = "logseq";
|
||||
};
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue