Files
nixpkgs/pkgs/by-name/po/positron-bin/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

149 lines
3.9 KiB
Nix

{
lib,
_7zz,
alsa-lib,
systemd,
wrapGAppsHook4,
autoPatchelfHook,
blas,
dpkg,
fetchurl,
gtk3,
libglvnd,
libxkbcommon,
makeShellWrapper,
libgbm,
musl,
nss,
patchelf,
openssl,
stdenv,
xorg,
}:
let
pname = "positron-bin";
version = "2025.09.0-139";
in
stdenv.mkDerivation {
inherit version pname;
src =
if stdenv.hostPlatform.isDarwin then
fetchurl {
url = "https://cdn.posit.co/positron/releases/mac/universal/Positron-${version}-universal.dmg";
hash = "sha256-N6urQYmpVoL2JeriHxO/H0J66U6nAez7U8w8qbzZ+ys=";
}
else if stdenv.hostPlatform.system == "aarch64-linux" then
fetchurl {
url = "https://cdn.posit.co/positron/releases/deb/arm64/Positron-${version}-arm64.deb";
hash = "sha256-IbMLnI/SDDLKIL1sTWjez186tbY3SZtuNmfNe9b6PXw=";
}
else
fetchurl {
url = "https://cdn.posit.co/positron/releases/deb/x86_64/Positron-${version}-x64.deb";
hash = "sha256-XlRj+1Gmo7HUzluehmJ4VjcIWbqWl2ncB0dfyC6iz8I=";
};
buildInputs = [
makeShellWrapper
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
gtk3
libglvnd
libxkbcommon
libgbm
musl
nss
stdenv.cc.cc
openssl
xorg.libX11
xorg.libXcomposite
xorg.libXdamage
xorg.libxkbfile
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
blas
patchelf
];
nativeBuildInputs =
lib.optionals stdenv.hostPlatform.isLinux [
autoPatchelfHook
dpkg
wrapGAppsHook4
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
_7zz
];
runtimeDependencies = lib.optionals stdenv.hostPlatform.isLinux [
# Needed to fix the "Zygote could not fork" error.
(lib.getLib systemd)
];
installPhase =
if stdenv.hostPlatform.isDarwin then
''
runHook preInstall
mkdir -p "$out/Applications" "$out/bin"
cp -r . "$out/Applications/Positron.app"
# Positron will use the system version of BLAS if we don't provide the nix version.
wrapProgram "$out/Applications/Positron.app/Contents/Resources/app/bin/code" \
--prefix DYLD_INSERT_LIBRARIES : "${lib.makeLibraryPath [ blas ]}/libblas.dylib" \
--add-flags "--disable-updates"
ln -s "$out/Applications/Positron.app/Contents/Resources/app/bin/code" "$out/bin/positron"
runHook postInstall
''
else
''
runHook preInstall
mkdir -p "$out/share"
cp -r usr/share/pixmaps "$out/share/pixmaps"
cp -r usr/share/positron "$out/share/positron"
mkdir -p "$out/share/applications"
install -m 444 -D usr/share/applications/positron.desktop "$out/share/applications/positron.desktop"
substituteInPlace "$out/share/applications/positron.desktop" \
--replace-fail \
"Icon=co.posit.positron" \
"Icon=$out/share/pixmaps/co.posit.positron.png" \
--replace-fail \
"Exec=/usr/share/positron/positron %F" \
"Exec=$out/share/positron/.positron-wrapped %F" \
--replace-fail \
"/usr/share/positron/positron --new-window %F" \
"$out/share/positron/.positron-wrapped --new-window %F"
# Fix libGL.so not found errors.
wrapProgram "$out/share/positron/positron" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libglvnd ]}" \
--add-flags "--disable-updates"
mkdir -p "$out/bin"
ln -s "$out/share/positron/positron" "$out/bin/positron"
runHook postInstall
'';
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Positron, a next-generation data science IDE";
homepage = "https://github.com/posit-dev/positron";
license = licenses.elastic20;
maintainers = with maintainers; [
b-rodrigues
detroyejr
];
mainProgram = "positron";
platforms = [
"x86_64-linux"
"aarch64-linux"
]
++ platforms.darwin;
};
}