about summary refs log tree commit diff
path: root/pkgs/applications/editors/pulsar/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/editors/pulsar/default.nix')
-rw-r--r--pkgs/applications/editors/pulsar/default.nix243
1 files changed, 0 insertions, 243 deletions
diff --git a/pkgs/applications/editors/pulsar/default.nix b/pkgs/applications/editors/pulsar/default.nix
deleted file mode 100644
index a2b572ae516b8..0000000000000
--- a/pkgs/applications/editors/pulsar/default.nix
+++ /dev/null
@@ -1,243 +0,0 @@
-{ lib
-, stdenv
-, git
-, git-lfs
-, fetchurl
-, wrapGAppsHook
-, alsa-lib
-, at-spi2-atk
-, cairo
-, cups
-, dbus
-, expat
-, gdk-pixbuf
-, glib
-, gtk3
-, mesa
-, nss
-, nspr
-, xorg
-, libdrm
-, libsecret
-, libxkbcommon
-, pango
-, systemd
-, hunspellDicts
-, useHunspell ? true
-, languages ? [ "en_US" ]
-, withNemoAction ? true
-, makeDesktopItem
-, copyDesktopItems
-, asar
-, python3
-}:
-
-let
-  pname = "pulsar";
-  version = "1.114.0";
-
-  sourcesPath = {
-    x86_64-linux.tarname = "Linux.${pname}-${version}.tar.gz";
-    x86_64-linux.hash = "sha256-O//dowoMgQfS3hq088IKr5aJd5St9zpT/ypfuswnyv0=";
-    aarch64-linux.tarname = "ARM.Linux.${pname}-${version}-arm64.tar.gz";
-    aarch64-linux.hash = "sha256-EzCTB1Ib9cTbslEdXPsS5gehHr1qd5v4iZgOqpxhUmA=";
-  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-
-  newLibpath = lib.makeLibraryPath [
-    alsa-lib
-    at-spi2-atk
-    cairo
-    cups
-    dbus
-    expat
-    gdk-pixbuf
-    glib
-    gtk3
-    libsecret
-    mesa
-    nss
-    nspr
-    libdrm
-    xorg.libX11
-    xorg.libxcb
-    xorg.libXcomposite
-    xorg.libXdamage
-    xorg.libXext
-    xorg.libXfixes
-    xorg.libXrandr
-    xorg.libxshmfence
-    libxkbcommon
-    xorg.libxkbfile
-    pango
-    stdenv.cc.cc.lib
-    systemd
-  ];
-
-  # Hunspell
-  hunspellDirs = builtins.map (lang: "${hunspellDicts.${lang}}/share/hunspell") languages;
-  hunspellTargetDirs = "$out/opt/Pulsar/resources/app.asar.unpacked/node_modules/spellchecker/vendor/hunspell_dictionaries";
-  hunspellCopyCommands = lib.concatMapStringsSep "\n" (lang: "cp -r ${lang}/* ${hunspellTargetDirs};") hunspellDirs;
-in
-stdenv.mkDerivation rec {
-  inherit pname version;
-
-  src = with sourcesPath; fetchurl {
-    url = "https://github.com/pulsar-edit/pulsar/releases/download/v${version}/${tarname}";
-    inherit hash;
-  };
-
-  patches = [
-    ./001-patch-wrapper.patch
-  ];
-
-  nativeBuildInputs = [
-    wrapGAppsHook
-    copyDesktopItems
-    asar
-  ];
-
-  buildInputs = [
-    gtk3
-    xorg.libxkbfile
-  ];
-
-  dontBuild = true;
-  dontConfigure = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/opt/Pulsar
-    mv * $out/opt/Pulsar
-
-    runHook postInstall
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      # needed for gio executable to be able to delete files
-      --prefix "PATH" : "${lib.makeBinPath [ glib ]}"
-    )
-  '' + lib.optionalString useHunspell ''
-    # On all platforms, we must inject our dictionnaries
-    ${hunspellCopyCommands}
-  '';
-
-  postFixup = ''
-    opt=$out/opt/Pulsar
-    # Patch the prebuilt binaries
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${newLibpath}:$opt" \
-      --add-needed libffmpeg.so \
-      --add-needed libxshmfence.so.1 \
-      --add-needed libxkbcommon.so.0 \
-      --add-needed libxkbfile.so.1 \
-      --add-needed libsecret-1.so.0 \
-      $opt/pulsar
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${newLibpath}" \
-      $opt/resources/app/ppm/bin/node
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      $opt/resources/app.asar.unpacked/node_modules/symbol-provider-ctags/vendor/ctags-linux
-
-    # Replace the bundled git with the one from nixpkgs
-    dugite=$opt/resources/app.asar.unpacked/node_modules/dugite
-    rm -f $dugite/git/bin/git
-    ln -s ${git}/bin/git $dugite/git/bin/git
-
-    # Not only do we need to replace the git binary itself, we also need to replace
-    # all the symlinks in dugite/git/libexec/git-core.
-    for file in "$dugite/git/libexec/git-core"/*; do
-      if [ -x "$file" ] && file "$file" | grep -q "ELF"; then
-          # Remove ELF executable
-          rm "$file"
-
-          # Get the corresponding filename in nixpkgs's git
-          filename=$(basename "$file")
-          git_executable="${git}/libexec/git-core/$filename"
-
-          # Create symlink to $git_executable
-          ln -s "$git_executable" "$file"
-
-          echo "Replaced $file with symlink to $git_executable"
-        fi
-    done
-
-    # Was symlinked in previous loop, but actually, nixpkgs has a separate package for git-lfs
-    # Unlink to avoid a "File exists" error and relink correctly
-    unlink $dugite/git/libexec/git-core/git-lfs
-    ln -s ${git-lfs}/bin/git-lfs $dugite/git/libexec/git-core/git-lfs
-  '' + lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") ''
-    # We have to patch a prebuilt binary in the asar archive
-    # But asar complains because the node_gyp unpacked dependency uses a prebuilt Python3 itself
-
-    rm $opt/resources/app.asar.unpacked/node_modules/tree-sitter-bash/build/node_gyp_bins/python3
-    ln -s ${python3.interpreter} $opt/resources/app.asar.unpacked/node_modules/tree-sitter-bash/build/node_gyp_bins/python3
-  '' + ''
-    # Patch the bundled node executables
-    find $opt -name "*.node" -exec patchelf --set-rpath "${newLibpath}:$opt" {} \;
-    # Also patch the node executable for apm
-    patchelf --set-rpath "${newLibpath}:$opt" $opt/resources/app/ppm/bin/node
-
-    # The pre-packaged ASAR bundle comes with prebuild binaries, expecting libstdc++.so.6
-    asarBundle=$TMPDIR/asarbundle
-    asar e $opt/resources/app.asar $asarBundle
-    find $asarBundle -name "*.node" -exec patchelf --set-rpath "${newLibpath}:$opt" --add-needed libstdc++.so.6 {} \;
-    unlink $asarBundle/node_modules/document-register-element/dre # Self referencing symlink, breaking asar rebundling
-    asar p $asarBundle $opt/resources/app.asar
-    rm -rf $asarBundle
-
-    # We have patched the original wrapper, but now it needs the "PULSAR_PATH" env var
-    mkdir -p $out/bin
-    wrapProgram $opt/resources/pulsar.sh \
-      --prefix "PULSAR_PATH" : "$opt/pulsar"
-    ln -s $opt/resources/pulsar.sh $out/bin/pulsar
-    ln -s $opt/resources/app/ppm/bin/apm $out/bin/ppm
-
-    # Copy the icons
-    mkdir -p $out/share/icons/hicolor/scalable/apps $out/share/icons/hicolor/1024x1024/apps
-    cp $opt/resources/pulsar.svg $out/share/icons/hicolor/scalable/apps/pulsar.svg
-    cp $opt/resources/pulsar.png $out/share/icons/hicolor/1024x1024/apps/pulsar.png
-  '' + lib.optionalString withNemoAction ''
-    # Copy the nemo action file
-    mkdir -p $out/share/nemo/actions
-    cp ${./pulsar.nemo_action} $out/share/nemo/actions/pulsar.nemo_action
-  '';
-
-  desktopItems = [
-    (makeDesktopItem {
-      name = "Pulsar";
-      desktopName = "Pulsar";
-      exec = "pulsar";
-      icon = "pulsar";
-      comment = "A Community-led Hyper-Hackable Text Editor";
-      genericName = "Text Editor";
-      categories = [ "Development" "TextEditor" "Utility" ];
-      mimeTypes = [ "text/plain" ];
-    })
-  ];
-
-  passthru.updateScript = ./update.mjs;
-
-  meta = with lib; {
-    description = "A Community-led Hyper-Hackable Text Editor";
-    longDescription = ''
-      A Community-led Hyper-Hackable Text Editor, Forked from Atom, built on Electron.
-      Designed to be deeply customizable, but still approachable using the default configuration.
-    '';
-    homepage = "https://github.com/pulsar-edit/pulsar";
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ bryango ];
-    knownVulnerabilities = [
-      "CVE-2023-5217"
-      "CVE-2022-21718"
-      "CVE-2022-29247"
-      "CVE-2022-29257"
-      "CVE-2022-36077"
-      "CVE-2023-29198"
-      "CVE-2023-39956"
-    ];
-  };
-}