Merge pull request #226616 from COLAMAroro/submit/update-pulsar-1.104.0

This commit is contained in:
Sandro 2023-04-19 01:23:14 +02:00 committed by GitHub
commit cee3b00388
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 9 deletions

View File

@ -17,23 +17,26 @@
, makeDesktopItem
, copyDesktopItems
, makeWrapper
, nodePackages
, python3
}:
let
pname = "Pulsar";
version = "1.103.0";
pname = "pulsar";
version = "1.104.0";
sourcesPath = {
x86_64-linux.tarname = "Linux.${pname}-${version}.tar.gz";
x86_64-linux.hash = "sha256-C9La+rMpxyFthNPwPBZfV1goP/F1TiNYYYwmPCSkKdw=";
x86_64-linux.hash = "sha256-HEMUQVNPb6qWIXX25N79HwHo7j11MyFiBRsq9otdAL8=";
aarch64-linux.tarname = "ARM.Linux.${pname}-${version}-arm64.tar.gz";
aarch64-linux.hash = "sha256-uVGxDLqFgm5USZT6i7pLYJZq8jFxZviVXXYTL3RVhpw=";
aarch64-linux.hash = "sha256-f+s54XtLLdhTFY9caKTKngJF6zLai0F7ur9v37bwuNE=";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
additionalLibs = lib.makeLibraryPath [
xorg.libxshmfence
libxkbcommon
xorg.libxkbfile
stdenv.cc.cc.lib
];
newLibpath = "${atomEnv.libPath}:${additionalLibs}";
@ -57,6 +60,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
wrapGAppsHook
copyDesktopItems
nodePackages.asar
];
buildInputs = [
@ -110,12 +114,26 @@ stdenv.mkDerivation rec {
ln -s ${git}/bin/git $dugite/git/bin/git
rm -f $dugite/git/libexec/git-core/git
ln -s ${git}/bin/git $dugite/git/libexec/git-core/git
# 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}/bin/python3 $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 \

View File

@ -4,15 +4,13 @@
*/
import { promises as fs } from 'node:fs';
import { promisify } from 'node:util';
import { exec as _exec } from 'node:child_process';
const exec = promisify(_exec);
const constants = {
githubUrl: "https://api.github.com/repos/pulsar-edit/pulsar/releases",
sha256FileURL: (newVersion) => `https://github.com/pulsar-edit/pulsar/releases/download/v${newVersion}/SHA256SUMS.txt`,
x86_64FileName: (newVersion) => `Linux.pulsar-${newVersion}.tar.gz`,
aarch64FileName: (newVersion) => `ARM.Linux.pulsar-${newVersion}-arm64.tar.gz`,
targetFile: new URL("default.nix", import.meta.url).pathname,
};
async function getLatestVersion() {
@ -69,10 +67,10 @@ async function updateFile(newVersion, sha256Sums, currentFile) {
newFile = newFile.replace(/x86_64-linux\.hash = "(.*)";/, `x86_64-linux.hash = "${sha256Sums.x86_64}";`);
newFile = newFile.replace(/aarch64-linux\.hash = "(.*)";/, `aarch64-linux.hash = "${sha256Sums.aarch64}";`);
await fs.writeFile('default.nix', newFile);
await fs.writeFile(constants.targetFile, newFile);
};
let currentFile = await fs.readFile('default.nix', 'utf8');
let currentFile = await fs.readFile(constants.targetFile, 'utf8');
let currentVersion = currentFile.match(/version = "(.*)";/)[1];
const newVersion = await getLatestVersion();
if (currentVersion === newVersion) {