jetbrains.*: expose libdbm, general cleanups (#553326)

This commit is contained in:
Matt Sturgeon
2026-09-03 15:55:19 +00:00
committed by GitHub
33 changed files with 678 additions and 377 deletions

View File

@@ -1,9 +1,11 @@
# Darwin-specific base builder.
{
# keep-sorted start
lib,
stdenvNoCC,
undmg,
# keep-sorted end
excludeDrvArgNames,
...

View File

@@ -1,14 +1,13 @@
# Builder for JetBrains IDEs (`mkJetBrainsProduct`)
{
# keep-sorted start
callPackage,
lib,
stdenv,
callPackage,
jdk,
# keep-sorted end
vmopts ? null,
forceWayland ? false,
}:
let
baseBuilder = if stdenv.hostPlatform.isDarwin then ./darwin.nix else ./linux.nix;
@@ -16,7 +15,7 @@ in
# Makes a JetBrains IDE
lib.extendMkDerivation {
constructDrv = callPackage baseBuilder {
inherit vmopts jdk forceWayland;
inherit vmopts;
# Args to not pass to mkDerivation in the base builders. Since both get the same args
# passed in, both have the same list of args to ignore, even if they don't both use
# all of them.
@@ -25,7 +24,7 @@ lib.extendMkDerivation {
"productShort"
"buildNumber"
"wmClass"
"libdbm"
"jetbrains-libdbm"
"fsnotifier"
"extraLdPath"
"extraWrapperArgs"
@@ -39,7 +38,7 @@ lib.extendMkDerivation {
buildNumber,
product,
libdbm,
jetbrains-libdbm,
fsnotifier,
meta ? { },
@@ -51,7 +50,7 @@ lib.extendMkDerivation {
inherit
buildNumber
product
libdbm
jetbrains-libdbm
fsnotifier
;
@@ -61,9 +60,5 @@ lib.extendMkDerivation {
plugins = callPackage ../plugins/tests.nix { ide = finalAttrs.finalPackage; };
};
};
meta = meta // {
teams = [ lib.teams.jetbrains ];
};
};
}

View File

@@ -1,37 +1,27 @@
# Linux-specific base builder.
{
stdenv,
lib,
makeDesktopItem,
makeWrapper,
patchelf,
writeText,
coreutils,
gnugrep,
which,
git,
unzip,
libsecret,
libnotify,
udev,
e2fsprogs,
python3,
autoPatchelfHook,
glibcLocales,
fontconfig,
libGL,
libx11,
# bundled jcef-plugin
# keep-sorted start
alsa-lib,
at-spi2-atk,
at-spi2-core,
atk,
autoPatchelfHook,
cairo,
coreutils,
cups,
dbus,
e2fsprogs,
fontconfig,
git,
glibcLocales,
gnugrep,
lib,
libGL,
libgbm,
libnotify,
libsecret,
libx11,
libxcb,
libxcomposite,
libxdamage,
@@ -39,13 +29,21 @@
libxfixes,
libxkbcommon,
libxrandr,
makeDesktopItem,
makeWrapper,
nspr,
nss,
pango,
patchelf,
python3,
stdenv,
udev,
unzip,
which,
writeText,
# keep-sorted end
jdk,
vmopts ? null,
forceWayland ? null,
excludeDrvArgNames,
}:
@@ -62,7 +60,8 @@ lib.extendMkDerivation {
productShort ? product,
wmClass,
libdbm,
jdk,
jetbrains-libdbm,
fsnotifier,
extraLdPath ? [ ],
@@ -78,11 +77,6 @@ lib.extendMkDerivation {
loName = lib.toLower productShort;
hiName = lib.toUpper productShort;
vmoptsName = loName + lib.optionalString stdenv.hostPlatform.is64bit "64" + ".vmoptions";
finalExtraWrapperArgs =
extraWrapperArgs
++ lib.optionals forceWayland [
''--add-flags "\''${WAYLAND_DISPLAY:+-Dawt.toolkit.name=WLToolkit}"''
];
desktopItem = makeDesktopItem {
name = finalAttrs.pname;
@@ -102,12 +96,7 @@ lib.extendMkDerivation {
inherit desktopItem vmoptsIDE vmoptsFile;
buildInputs = buildInputs ++ [
stdenv.cc.cc
fontconfig
libGL
libx11
# required for the bundled jcef-plugin
udev
# keep-sorted start
alsa-lib
at-spi2-atk
at-spi2-core
@@ -115,7 +104,10 @@ lib.extendMkDerivation {
cairo
cups
dbus
fontconfig
libGL
libgbm
libx11
libxcb
libxcomposite
libxdamage
@@ -126,13 +118,18 @@ lib.extendMkDerivation {
nspr
nss
pango
stdenv.cc.cc
udev
# keep-sorted end
];
nativeBuildInputs = nativeBuildInputs ++ [
# keep-sorted start
autoPatchelfHook
makeWrapper
patchelf
unzip
autoPatchelfHook
# keep-sorted end
];
postPatch = ''
@@ -167,11 +164,9 @@ lib.extendMkDerivation {
fi
echo -Djna.library.path=${
lib.makeLibraryPath [
libsecret
e2fsprogs
libnotify
# Required for Help -> Collect Logs
# in at least rider and goland
libsecret
udev
]
} >> $vmopts_file
@@ -185,7 +180,7 @@ lib.extendMkDerivation {
cp -a . $out/$pname
[[ -f $out/$pname/bin/${loName}.png ]] && ln -s $out/$pname/bin/${loName}.png $out/share/icons/hicolor/128x128/apps/${pname}.png
[[ -f $out/$pname/bin/${loName}.svg ]] && ln -s $out/$pname/bin/${loName}.svg $out/share/icons/hicolor/scalable/apps/${pname}.svg
cp ${libdbm}/lib/libdbm.so $out/$pname/bin/libdbm.so
cp ${jetbrains-libdbm}/lib/libdbm.so $out/$pname/bin/libdbm.so
cp ${fsnotifier}/bin/fsnotifier $out/$pname/bin/fsnotifier
jdk=${jdk.home}
@@ -205,16 +200,16 @@ lib.extendMkDerivation {
wrapProgram "$launcher" \
--prefix PATH : "${
lib.makeBinPath [
jdk
coreutils
gnugrep
which
git
gnugrep
jdk
which
]
}" \
--suffix PATH : "${lib.makeBinPath [ python3 ]}" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath extraLdPath}" \
${lib.concatStringsSep " " finalExtraWrapperArgs} \
${lib.concatStringsSep " " extraWrapperArgs} \
--set-default JDK_HOME "$jdk" \
--set-default ANDROID_JAVA_HOME "$jdk" \
--set-default JAVA_HOME "$jdk" \

View File

@@ -1,102 +1,40 @@
{
lib,
config,
stdenv,
# keep-sorted start
callPackage,
python3,
jetbrains,
config,
lib,
stdenv,
# keep-sorted end
vmopts ? null,
forceWayland ? false,
}:
let
jetbrainsBuilder =
jdk:
callPackage ./builder/default.nix {
inherit jdk forceWayland vmopts;
};
mkSrcIde =
path: extras:
callPackage path (
{
mkJetBrainsProduct = jetbrainsBuilder jetbrains.jdk;
mkJetBrainsSource = callPackage ./source/build.nix { };
}
// extras
);
_idea-oss = mkSrcIde ./ides/idea-oss.nix { };
# The binary builds use the same libdbm and fsnotifier as the current idea-oss source build.
mkBinIde =
path: extras:
callPackage path (
{
mkJetBrainsProduct = jetbrainsBuilder jetbrains.jdk-no-jcef;
libdbm = _idea-oss.libdbm;
fsnotifier = _idea-oss.fsnotifier;
}
// extras
);
# Common build overrides, fixes, etc.
# TODO: These should eventually be moved outside of this file
pyCharmCommonOverrides = (
finalAttrs: previousAttrs:
lib.optionalAttrs stdenv.hostPlatform.isLinux {
buildInputs =
with python3.pkgs;
(previousAttrs.buildInputs or [ ])
++ [
python3
setuptools
];
preInstall = ''
echo "compiling cython debug speedups"
if [[ -d plugins/python-ce ]]; then
${python3.interpreter} plugins/python-ce/helpers/pydev/setup_cython.py build_ext --inplace
else
${python3.interpreter} plugins/python/helpers/pydev/setup_cython.py build_ext --inplace
fi
'';
# See https://www.jetbrains.com/help/pycharm/2022.1/cython-speedups.html
}
);
patchSharedLibs = lib.optionalString stdenv.hostPlatform.isLinux ''
ls -d \
$out/*/bin/*/linux/*/lib/liblldb.so \
$out/*/bin/*/linux/*/lib/python3.*/lib-dynload/* \
$out/*/plugins/*/bin/*/linux/*/lib/liblldb.so \
$out/*/plugins/*/bin/*/linux/*/lib/python3.*/lib-dynload/* |
xargs patchelf \
--replace-needed libssl.so.10 libssl.so \
--replace-needed libssl.so.1.1 libssl.so \
--replace-needed libcrypto.so.10 libcrypto.so \
--replace-needed libcrypto.so.1.1 libcrypto.so \
--replace-needed libcrypt.so.1 libcrypt.so \
${lib.optionalString stdenv.hostPlatform.isAarch "--replace-needed libxml2.so.2 libxml2.so"}
'';
in
{
# Builders
mkJetBrainsProduct = callPackage ./builder/default.nix {
inherit vmopts;
};
mkJetBrainsSource = callPackage ./source/build.nix { };
# Hooks
cythonDebugSpeedupsHook = callPackage ./hooks/cython-debug-speedups.nix { };
sharedLibsHook = callPackage ./hooks/shared-libs.nix { };
# Sorted alphabetically. Deprecated products and aliases are at the very end.
clion = mkBinIde ./ides/clion.nix { inherit patchSharedLibs; };
datagrip = mkBinIde ./ides/datagrip.nix { };
dataspell = mkBinIde ./ides/dataspell.nix { };
gateway = mkBinIde ./ides/gateway.nix { };
goland = mkBinIde ./ides/goland.nix { };
idea = mkBinIde ./ides/idea.nix { };
idea-oss = _idea-oss;
mps = mkBinIde ./ides/mps.nix { };
phpstorm = mkBinIde ./ides/phpstorm.nix { };
pycharm = mkBinIde ./ides/pycharm.nix { inherit pyCharmCommonOverrides; };
pycharm-oss = mkSrcIde ./ides/pycharm-oss.nix { inherit pyCharmCommonOverrides; };
rider = mkBinIde ./ides/rider.nix { inherit patchSharedLibs; };
ruby-mine = mkBinIde ./ides/ruby-mine.nix { };
rust-rover = mkBinIde ./ides/rust-rover.nix { inherit patchSharedLibs; };
webstorm = mkBinIde ./ides/webstorm.nix { };
clion = callPackage ./ides/clion.nix { };
datagrip = callPackage ./ides/datagrip.nix { };
dataspell = callPackage ./ides/dataspell.nix { };
gateway = callPackage ./ides/gateway.nix { };
goland = callPackage ./ides/goland.nix { };
idea = callPackage ./ides/idea.nix { };
idea-oss = callPackage ./ides/idea-oss.nix { };
mps = callPackage ./ides/mps.nix { };
phpstorm = callPackage ./ides/phpstorm.nix { };
pycharm = callPackage ./ides/pycharm.nix { };
pycharm-oss = callPackage ./ides/pycharm-oss.nix { };
rider = callPackage ./ides/rider.nix { };
ruby-mine = callPackage ./ides/ruby-mine.nix { };
rust-rover = callPackage ./ides/rust-rover.nix { };
webstorm = callPackage ./ides/webstorm.nix { };
# Plugins
plugins = callPackage ./plugins { };

View File

@@ -0,0 +1,12 @@
#!@shell@
compileCythonDebugSpeedupsHook() {
echo "compiling cython debug speedups" >&2
if [[ -d plugins/python-ce ]]; then
@python@ plugins/python-ce/helpers/pydev/setup_cython.py build_ext --inplace
else
@python@ plugins/python/helpers/pydev/setup_cython.py build_ext --inplace
fi
}
preInstallHooks+=(compileCythonDebugSpeedupsHook)

View File

@@ -0,0 +1,22 @@
{
# keep-sorted start
bash,
lib,
makeSetupHook,
python3,
# keep-sorted end
}:
/**
See https://www.jetbrains.com/help/pycharm/2026.2/cython-speedups.html
*/
makeSetupHook {
name = "cython-debug-speedups-hook";
substitutions = {
shell = lib.getExe bash;
python = python3.interpreter;
};
meta = {
description = "Setup hook that applies Cython-based debugger speedups from JetBrains";
teams = [ lib.teams.jetbrains ];
};
} ./cython-debug-speedups-hook.sh

View File

@@ -0,0 +1,18 @@
#!@shell@
jetbrainsPatchSharedLibs() {
ls -d \
$out/*/bin/*/linux/*/lib/liblldb.so \
$out/*/bin/*/linux/*/lib/python3.*/lib-dynload/* \
$out/*/plugins/*/bin/*/linux/*/lib/liblldb.so \
$out/*/plugins/*/bin/*/linux/*/lib/python3.*/lib-dynload/* |
xargs @patchelf@ \
--replace-needed libssl.so.10 libssl.so \
--replace-needed libssl.so.1.1 libssl.so \
--replace-needed libcrypto.so.10 libcrypto.so \
--replace-needed libcrypto.so.1.1 libcrypto.so \
--replace-needed libcrypt.so.1 libcrypt.so \
@darwinLibxml@
}
preFixupHooks+=(jetbrainsPatchSharedLibs)

View File

@@ -0,0 +1,19 @@
{
# keep-sorted start
lib,
makeSetupHook,
patchelf,
stdenv,
# keep-sorted end
}:
makeSetupHook {
name = "shared-libs-hook";
substitutions = {
patchelf = lib.getExe patchelf;
darwinLibxml = lib.optionalString stdenv.hostPlatform.isAarch "--replace-needed libxml2.so.2 libxml2.so";
};
meta = {
description = "Setup hook that rewrites sonames in libraries bundled with JetBrains IDEs";
teams = [ lib.teams.jetbrains ];
};
} ./shared-libs-hook.sh

View File

@@ -1,20 +1,21 @@
{
stdenv,
lib,
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
patchSharedLibs,
# keep-sorted start
dotnetCorePackages,
python3,
openssl,
expat,
fetchurl,
fsnotifier,
jetbrains,
jetbrains-libdbm,
lib,
libxcrypt-legacy,
libxml2,
lttng-ust_2_12,
musl,
expat,
libxml2,
openssl,
python3,
stdenv,
xz,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -35,8 +36,8 @@ let
};
# update-script-end: urls
in
(mkJetBrainsProduct {
inherit libdbm fsnotifier;
(jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "clion";
@@ -50,6 +51,15 @@ in
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ jetbrains.sharedLibsHook ];
buildInputs =
lib.optionals stdenv.hostPlatform.isLinux [
python3
@@ -73,6 +83,7 @@ in
mic92
tymscar
];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then
@@ -90,9 +101,4 @@ in
ln -s ${dotnetCorePackages.sdk_10_0-source}/share/dotnet $dir/dotnet
done
'';
postFixup = ''
${attrs.postFixup or ""}
${patchSharedLibs}
'';
})

View File

@@ -1,11 +1,12 @@
{
stdenv,
lib,
# keep-sorted start
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
jetbrains,
jetbrains-libdbm,
lib,
stdenv,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -26,8 +27,8 @@ let
};
# update-script-end: urls
in
mkJetBrainsProduct {
inherit libdbm fsnotifier;
jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "datagrip";
@@ -41,6 +42,13 @@ mkJetBrainsProduct {
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
# NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed
meta = {
homepage = "https://www.jetbrains.com/datagrip/";
@@ -50,6 +58,7 @@ mkJetBrainsProduct {
It allows you to quickly migrate and refactor relational databases, construct efficient, statically checked SQL queries and much more.
'';
maintainers = [ ];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then

View File

@@ -1,13 +1,15 @@
{
stdenv,
lib,
# keep-sorted start case=no
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
jetbrains,
jetbrains-libdbm,
lib,
libgcc,
runCommand,
R,
runCommand,
stdenv,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -28,8 +30,8 @@ let
};
# update-script-end: urls
in
mkJetBrainsProduct {
inherit libdbm fsnotifier;
jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "dataspell";
@@ -43,6 +45,13 @@ mkJetBrainsProduct {
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
# NOTE: This `lib.optionals` is only here because the old Darwin builder ignored `buildInputs`.
# DataSpell may need these, even on Darwin!
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
@@ -62,6 +71,7 @@ mkJetBrainsProduct {
Mainly it integrates Jupyter notebooks in the IntelliJ platform.
'';
maintainers = with lib.maintainers; [ leona ];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then

View File

@@ -1,11 +1,13 @@
{
stdenv,
lib,
# keep-sorted start
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
jetbrains,
jetbrains-libdbm,
lib,
libgcc,
stdenv,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -26,8 +28,8 @@ let
};
# update-script-end: urls
in
mkJetBrainsProduct {
inherit libdbm fsnotifier;
jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "gateway";
@@ -42,6 +44,13 @@ mkJetBrainsProduct {
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
buildInputs = [
libgcc
];
@@ -52,6 +61,7 @@ mkJetBrainsProduct {
description = "Remote development for JetBrains products";
longDescription = "JetBrains Gateway is a lightweight launcher that connects a remote server with your local machine and opens your project in JetBrains Client.";
maintainers = [ ];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then

View File

@@ -1,11 +1,13 @@
{
stdenv,
lib,
# keep-sorted start
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
jetbrains,
jetbrains-libdbm,
lib,
libgcc,
stdenv,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -26,8 +28,8 @@ let
};
# update-script-end: urls
in
(mkJetBrainsProduct {
inherit libdbm fsnotifier;
(jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "goland";
@@ -41,6 +43,13 @@ in
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
extraWrapperArgs = [
# fortify source breaks build since delve compiles with -O0
''--prefix CGO_CPPFLAGS " " "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"''
@@ -58,6 +67,7 @@ in
The IDE extends the IntelliJ platform with the coding assistance and tool integrations specific for the Go language.
'';
maintainers = with lib.maintainers; [ tymscar ];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then

View File

@@ -1,12 +1,15 @@
{
# keep-sorted start
fsnotifier,
jetbrains,
lib,
mkJetBrainsProduct,
mkJetBrainsSource,
maven,
stdenv,
zlib,
# keep-sorted end
}:
let
src = mkJetBrainsSource {
src = jetbrains.mkJetBrainsSource {
# update-script-start: source-args
version = "2025.3.4";
buildNumber = "253.32098.37";
@@ -35,14 +38,17 @@ let
# update-script-end: source-args
};
in
mkJetBrainsProduct {
inherit src;
jetbrains.mkJetBrainsProduct {
inherit src fsnotifier;
inherit (src)
version
buildNumber
libdbm
fsnotifier
;
# this is jetbrains-libdbm but using the sources from the IDE build.
jetbrains-libdbm = src.libdbm;
# the jdk is bundled on Darwin.
jdk = if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk then jetbrains.jdk else null;
pname = "idea-oss";
@@ -68,6 +74,7 @@ mkJetBrainsProduct {
gytis-ivaskevicius
tymscar
];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.asl20;
sourceProvenance = [ lib.sourceTypes.fromSource ];
knownVulnerabilities = [

View File

@@ -1,14 +1,16 @@
{
stdenv,
lib,
# keep-sorted start
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
maven,
zlib,
jetbrains,
jetbrains-libdbm,
lib,
lldb,
maven,
musl,
stdenv,
zlib,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -29,8 +31,8 @@ let
};
# update-script-end: urls
in
mkJetBrainsProduct {
inherit libdbm fsnotifier;
jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "idea";
@@ -45,6 +47,13 @@ mkJetBrainsProduct {
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
extraLdPath = [ zlib ];
extraWrapperArgs = [
''--set M2_HOME "${maven}/maven"''
@@ -52,8 +61,10 @@ mkJetBrainsProduct {
];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
# keep-sorted start
lldb
musl
# keep-sorted end
];
# NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed
@@ -68,6 +79,7 @@ mkJetBrainsProduct {
gytis-ivaskevicius
tymscar
];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then

View File

@@ -1,11 +1,12 @@
{
stdenv,
lib,
# keep-sorted start
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
jetbrains,
jetbrains-libdbm,
lib,
stdenv,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -26,8 +27,8 @@ let
};
# update-script-end: urls
in
mkJetBrainsProduct {
inherit libdbm fsnotifier;
jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "mps";
@@ -41,12 +42,20 @@ mkJetBrainsProduct {
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
# NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed
meta = {
homepage = "https://www.jetbrains.com/mps/";
description = "IDE for building domain-specific languages from JetBrains";
longDescription = "A metaprogramming system which uses projectional editing which allows users to overcome the limits of language parsers, and build DSL editors, such as ones with tables and diagrams.";
maintainers = [ ];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then

View File

@@ -1,11 +1,13 @@
{
stdenv,
lib,
# keep-sorted start
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
jetbrains,
jetbrains-libdbm,
lib,
musl,
stdenv,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -26,8 +28,8 @@ let
};
# update-script-end: urls
in
mkJetBrainsProduct {
inherit libdbm fsnotifier;
jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "phpstorm";
@@ -41,6 +43,13 @@ mkJetBrainsProduct {
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
musl
];
@@ -51,6 +60,7 @@ mkJetBrainsProduct {
description = "PHP IDE from JetBrains";
longDescription = "PhpStorm provides an editor for PHP, HTML and JavaScript with on-the-fly code analysis, error prevention and automated refactorings for PHP and JavaScript code.";
maintainers = with lib.maintainers; [ tymscar ];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then

View File

@@ -1,11 +1,14 @@
{
# keep-sorted start
fsnotifier,
jetbrains,
lib,
mkJetBrainsProduct,
mkJetBrainsSource,
pyCharmCommonOverrides,
python3,
stdenv,
# keep-sorted end
}:
let
src = mkJetBrainsSource {
src = jetbrains.mkJetBrainsSource {
# update-script-start: source-args
version = "2025.3.3";
buildNumber = "253.31033.139";
@@ -34,14 +37,17 @@ let
# update-script-end: source-args
};
in
(mkJetBrainsProduct {
inherit src;
jetbrains.mkJetBrainsProduct {
inherit src fsnotifier;
inherit (src)
version
buildNumber
libdbm
fsnotifier
;
# this is jetbrains-libdbm but using the sources from the IDE build.
jetbrains-libdbm = src.libdbm;
# the jdk is bundled on Darwin.
jdk = if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk then jetbrains.jdk else null;
pname = "pycharm-oss";
@@ -49,6 +55,14 @@ in
product = "PyCharm Open Source";
productShort = "PyCharm";
nativeBuildInputs = [
# keep-sorted start
jetbrains.cythonDebugSpeedupsHook
python3
python3.pkgs.setuptools
# keep-sorted end
];
# NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed
meta = {
homepage = "https://www.jetbrains.com/pycharm/";
@@ -61,6 +75,7 @@ in
maintainers = with lib.maintainers; [
tymscar
];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.asl20;
sourceProvenance = [ lib.sourceTypes.fromSource ];
knownVulnerabilities = [
@@ -70,5 +85,4 @@ in
''
];
};
}).overrideAttrs
pyCharmCommonOverrides
}

View File

@@ -1,12 +1,14 @@
{
stdenv,
lib,
# keep-sorted start
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
pyCharmCommonOverrides,
jetbrains,
jetbrains-libdbm,
lib,
musl,
python3,
stdenv,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -27,8 +29,8 @@ let
};
# update-script-end: urls
in
(mkJetBrainsProduct {
inherit libdbm fsnotifier;
jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "pycharm";
@@ -42,6 +44,21 @@ in
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
nativeBuildInputs = [
# keep-sorted start
jetbrains.cythonDebugSpeedupsHook
python3
python3.pkgs.setuptools
# keep-sorted end
];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
musl
];
@@ -58,6 +75,7 @@ in
maintainers = with lib.maintainers; [
tymscar
];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then
@@ -65,5 +83,4 @@ in
else
[ lib.sourceTypes.binaryBytecode ];
};
}).overrideAttrs
pyCharmCommonOverrides
}

View File

@@ -1,23 +1,24 @@
{
stdenv,
lib,
# keep-sorted start
dotnetCorePackages,
expat,
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
patchSharedLibs,
openssl,
libxcrypt,
lttng-ust_2_12,
musl,
jetbrains,
jetbrains-libdbm,
lib,
libice,
libsm,
libx11,
dotnetCorePackages,
libxcb-keysyms,
expat,
libxcrypt,
libxml2,
lttng-ust_2_12,
musl,
openssl,
stdenv,
xz,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -38,8 +39,8 @@ let
};
# update-script-end: urls
in
(mkJetBrainsProduct {
inherit libdbm fsnotifier;
(jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "rider";
@@ -53,26 +54,41 @@ in
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ jetbrains.sharedLibsHook ];
# TODO: Some of these dependencies should probably also be added on Darwin - however it seems that JetBrains bundles them all? Unclear.
# Somebody with a Darwin machine should investigate this.
buildInputs =
lib.optionals stdenv.hostPlatform.isLinux [
openssl
# keep-sorted start
libxcb-keysyms
libxcrypt
lttng-ust_2_12
musl
libxcb-keysyms
openssl
# keep-sorted end
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch) [
# keep-sorted start
expat
libxml2
xz
# keep-sorted end
];
extraLdPath = lib.optionals (stdenv.hostPlatform.isLinux) [
# keep-sorted start
# Avalonia dependencies needed for dotMemory
libice
libsm
libx11
# keep-sorted end
];
# NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed
@@ -85,6 +101,7 @@ in
This lets you develop a wide array of applications including .NET desktop apps, services and libraries, Unity games, ASP.NET and ASP.NET Core web applications.
'';
maintainers = with lib.maintainers; [ raphaelr ];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then
@@ -94,11 +111,10 @@ in
};
}).overrideAttrs
(attrs: {
# TODO: It is not correct to bundle the .NET in nixpkgs as-is, see https://github.com/NixOS/nixpkgs/issues/489048
postInstall =
(attrs.postInstall or "")
+ lib.optionalString stdenv.hostPlatform.isLinux ''
${patchSharedLibs}
for dir in $out/rider/lib/ReSharperHost/linux-*; do
rm -rf $dir/dotnet
ln -s ${dotnetCorePackages.sdk_10_0-source}/share/dotnet $dir/dotnet

View File

@@ -1,11 +1,13 @@
{
stdenv,
lib,
# keep-sorted start
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
jetbrains,
jetbrains-libdbm,
lib,
musl,
stdenv,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -26,8 +28,8 @@ let
};
# update-script-end: urls
in
mkJetBrainsProduct {
inherit libdbm fsnotifier;
jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "ruby-mine";
@@ -41,6 +43,13 @@ mkJetBrainsProduct {
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
musl
];
@@ -51,6 +60,7 @@ mkJetBrainsProduct {
description = "Ruby IDE from JetBrains";
longDescription = "Ruby IDE from JetBrains";
maintainers = with lib.maintainers; [ tymscar ];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then

View File

@@ -1,17 +1,18 @@
{
stdenv,
lib,
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
patchSharedLibs,
python3,
openssl,
libxcrypt-legacy,
# keep-sorted start
expat,
fetchurl,
fsnotifier,
jetbrains,
jetbrains-libdbm,
lib,
libxcrypt-legacy,
libxml2,
openssl,
python3,
stdenv,
xz,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -32,8 +33,8 @@ let
};
# update-script-end: urls
in
(mkJetBrainsProduct {
inherit libdbm fsnotifier;
jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "rust-rover";
@@ -47,16 +48,29 @@ in
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ jetbrains.sharedLibsHook ];
buildInputs =
lib.optionals stdenv.hostPlatform.isLinux [
python3
openssl
# keep-sorted start
libxcrypt-legacy
openssl
python3
# keep-sorted end
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch) [
# keep-sorted start
expat
libxml2
xz
# keep-sorted end
];
# NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed
@@ -65,6 +79,7 @@ in
description = "Rust IDE from JetBrains";
longDescription = "Rust IDE from JetBrains";
maintainers = [ ];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then
@@ -72,10 +87,4 @@ in
else
[ lib.sourceTypes.binaryBytecode ];
};
}).overrideAttrs
(attrs: {
postFixup = ''
${attrs.postFixup or ""}
${patchSharedLibs}
'';
})
}

View File

@@ -1,11 +1,13 @@
{
stdenv,
lib,
# keep-sorted start
fetchurl,
mkJetBrainsProduct,
libdbm,
fsnotifier,
jetbrains,
jetbrains-libdbm,
lib,
musl,
stdenv,
# keep-sorted end
}:
let
system = stdenv.hostPlatform.system;
@@ -26,8 +28,8 @@ let
};
# update-script-end: urls
in
mkJetBrainsProduct {
inherit libdbm fsnotifier;
jetbrains.mkJetBrainsProduct {
inherit jetbrains-libdbm fsnotifier;
pname = "webstorm";
@@ -41,6 +43,13 @@ mkJetBrainsProduct {
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
# the jdk is bundled on Darwin.
jdk =
if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then
jetbrains.jdk-no-jcef
else
null;
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
musl
];
@@ -54,6 +63,7 @@ mkJetBrainsProduct {
abaldeau
tymscar
];
teams = [ lib.teams.jetbrains ];
license = lib.licenses.unfree;
sourceProvenance =
if stdenv.hostPlatform.isDarwin then

View File

@@ -1,12 +1,14 @@
{
# keep-sorted start
autoPatchelfHook,
callPackage,
darwin,
fetchurl,
fetchzip,
glib,
lib,
stdenv,
callPackage,
autoPatchelfHook,
glib,
darwin,
# keep-sorted end
}:
{
tests = callPackage ./tests.nix { };

View File

@@ -1,10 +1,13 @@
{
# keep-sorted start
fetchurl,
fetchzip,
jetbrains,
symlinkJoin,
lib,
runCommand,
fetchzip,
fetchurl,
symlinkJoin,
# keep-sorted end
# If not set, all IDEs are tested.
ide ? null,
}:
@@ -14,21 +17,23 @@ let
if ide == null then
with jetbrains;
[
# keep-sorted start
clion
datagrip
dataspell
gateway
goland
idea-oss
idea
idea-oss
mps
phpstorm
pycharm-oss
pycharm
pycharm-oss
rider
ruby-mine
rust-rover
webstorm
# keep-sorted end
]
else
[ ide ];

View File

@@ -56,13 +56,15 @@ Any comments or other manual changes between these markers will be removed when
- Add it to `default.nix`
### TODO:
- move PyCharm overrides to a common place outside of `default.nix`
- package `patchSharedLibs` from `default.nix` as a hook
- cleanup this TODO list, especially the following points, which have been here since 2023
- get rid of remaining `overrideAttrs` in IDE drvs:
- see https://github.com/NixOS/nixpkgs/pull/475183#discussion_r2655348886
- see https://github.com/NixOS/nixpkgs/pull/475183#discussion_r2655305961
- cleanup this TODO list, especially the following points, which (mostly) have been here since 2023
- replace `libxcrypt-legacy` with `libxcrypt` when supported
- make `jetbrains-remote-dev.patch` cleaner
- is extraLdPath needed for IDEA?
- from source builds:
- switch to Bazel builds, see https://github.com/NixOS/nixpkgs/pull/531637
- remove timestamps in output `.jar` of `jps-bootstrap`
- automated update scripts
- fetch `.jar`s from stuff built in nixpkgs when available

View File

@@ -1,28 +1,24 @@
{
# keep-sorted start
ant,
callPackage,
fetchFromGitHub,
fetchurl,
fetchzip,
fsnotifier,
glibc,
jetbrains,
jetbrains-libdbm,
kotlin,
lib,
linkFarm,
makeWrapper,
runCommand,
stdenv,
stdenvNoCC,
rustPlatform,
callPackage,
ant,
cmake,
fsnotifier,
glib,
glibc,
jetbrains,
kotlin,
libdbusmenu,
maven,
p7zip,
pkg-config,
libx11,
runCommand,
rustPlatform,
stdenvNoCC,
# keep-sorted end
}:
{
version,
@@ -67,59 +63,11 @@ let
cp -r ${androidSrc} $out/android
'';
libdbusmenu-jb = libdbusmenu.overrideAttrs (old: {
version = "jetbrains-fork";
src = fetchFromGitHub {
owner = "jetbrains";
repo = "libdbusmenu";
rev = "d8a49303f908a272e6670b7cee65a2ba7c447875";
hash = "sha256-u87ZgbfeCPJ0qG8gsom3gFaZxbS5NcHEodb0EVakk60=";
};
configureFlags = old.configureFlags ++ [
"--enable-static"
];
installPhase = ''
runHook preInstall
mkdir -p $out/lib
cp libdbusmenu-glib/.libs/libdbusmenu-glib.a $out/lib
runHook postInstall
'';
# Use the libdbm version in our src.
libdbm = jetbrains-libdbm.overrideAttrs (finalAttrs: {
inherit src version;
});
libdbm = stdenv.mkDerivation {
pname = "libdbm";
version = buildNumber;
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
glib
libx11
libdbusmenu
];
inherit src;
sourceRoot = "${src.name}/native/LinuxGlobalMenu";
patches = [ ../patches/libdbm-headers.patch ];
postPatch = ''
# Fix the build with CMake 4.
substituteInPlace CMakeLists.txt \
--replace-fail 'cmake_minimum_required(VERSION 2.6.0)' 'cmake_minimum_required(VERSION 3.10)'
cp ${libdbusmenu-jb}/lib/libdbusmenu-glib.a libdbusmenu-glib.a
'';
passthru.patched-libdbusmenu = libdbusmenu-jb;
installPhase = ''
runHook preInstall
mkdir -p $out/lib
mv libdbm.so $out/lib/libdbm.so
runHook postInstall
'';
};
restarter = rustPlatform.buildRustPackage {
pname = "restarter";
version = buildNumber;
@@ -130,8 +78,10 @@ let
# Allow static linking
buildInputs = [
# keep-sorted start
glibc
glibc.static
# keep-sorted end
];
};
@@ -143,9 +93,11 @@ let
inherit src;
sourceRoot = "${src.name}/platform/jps-bootstrap";
nativeBuildInputs = [
# keep-sorted start
ant
makeWrapper
jbr
makeWrapper
# keep-sorted end
];
patches = [ ../patches/kotlinc-path.patch ];
postPatch = "sed -i 's|KOTLIN_PATH_HERE|${kotlin'}|' src/main/java/org/jetbrains/jpsBootstrap/KotlinCompiler.kt";
@@ -237,9 +189,11 @@ stdenvNoCC.mkDerivation (finalAttrs: {
name = "${finalAttrs.pname}-${version}.tar.gz";
inherit src;
nativeBuildInputs = [
p7zip
# keep-sorted start
jbr
jps-bootstrap
p7zip
# keep-sorted end
];
repo = mvnRepo;
@@ -316,8 +270,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
inherit
version
buildNumber
# this is jetbrains-libdbm but using the sources from the IDE build.
libdbm
fsnotifier
jps-bootstrap
;
};

View File

@@ -1,10 +1,11 @@
{
runCommand,
# keep-sorted start
ant,
jbr,
jpsHash,
runCommand,
src,
# keep-sorted end
}:
runCommand "jps-bootstrap-repository"
{
@@ -12,8 +13,10 @@ runCommand "jps-bootstrap-repository"
outputHashMode = "recursive";
outputHash = jpsHash;
nativeBuildInputs = [
# keep-sorted start
ant
jbr
# keep-sorted end
];
}
''

View File

@@ -0,0 +1,96 @@
{
dbus-glib,
fetchFromGitHub,
file,
glib,
gobject-introspection,
intltool,
json-glib,
lib,
pkg-config,
stdenv,
vala,
}:
# This is directly based on ../../li/libdbusmenu .
stdenv.mkDerivation (finalAttrs: {
pname = "libdbusmenu-glib";
version = "16.04.0-jetbrains-fork-2022-05-18";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "jetbrains";
repo = "libdbusmenu";
rev = "d8a49303f908a272e6670b7cee65a2ba7c447875";
hash = "sha256-u87ZgbfeCPJ0qG8gsom3gFaZxbS5NcHEodb0EVakk60=";
};
nativeBuildInputs = [
vala
pkg-config
intltool
gobject-introspection
];
buildInputs = [
glib
dbus-glib
json-glib
];
patches = [
./requires-glib.patch
];
postPatch = ''
for f in {configure,ltmain.sh,m4/libtool.m4}; do
substituteInPlace $f \
--replace /usr/bin/file ${file}/bin/file
done
'';
preConfigure = ''
export HAVE_VALGRIND_TRUE="#"
export HAVE_VALGRIND_FALSE=""
'';
configureFlags = [
"CFLAGS=-Wno-error"
"--sysconfdir=/etc"
"--localstatedir=/var"
"--disable-gtk"
"--disable-dumper"
"--disable-scrollkeeper"
# jb:
"--enable-static"
];
doCheck = false;
installFlags = [
"sysconfdir=${placeholder "out"}/etc"
"localstatedir=\${TMPDIR}"
"typelibdir=${placeholder "out"}/lib/girepository-1.0"
];
postInstall = ''
mkdir -p $out/lib
cp libdbusmenu-glib/.libs/libdbusmenu-glib.a $out/lib
'';
meta = {
description = "Library for passing menu structures across DBus";
homepage = "https://launchpad.net/dbusmenu";
license = with lib.licenses; [
gpl3
lgpl21
lgpl3
];
pkgConfigModules = [
"dbusmenu-glib-0.4"
"dbusmenu-jsonloader-0.4"
];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,68 @@
{
callPackage,
cmake,
fetchFromGitHub,
glib,
lib,
libx11,
pkg-config,
stdenv,
}:
let
libdbusmenu-jb = callPackage ./libdbusmenu.nix { };
in
stdenv.mkDerivation (finalAttrs: {
pname = "jetbrains-libdbm";
# nixpkgs-update: no auto update
# In practice this package does not need to be regularly updated,
# at the time of writing the last change was 4 years ago.
# Check before updating.
version = "2025.3.4";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "jetbrains";
repo = "intellij-community";
tag = "idea/${finalAttrs.version}";
hash = "sha256-5rPaXIGOeWY9tcHRs5p376kgo4EbUtEltwcmNpPSsM8=";
};
sourceRoot = "source/native/LinuxGlobalMenu";
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
glib
libx11
libdbusmenu-jb
];
patches = [ ./headers.patch ];
postPatch = ''
# Fix the build with CMake 4.
substituteInPlace CMakeLists.txt \
--replace-fail 'cmake_minimum_required(VERSION 2.6.0)' 'cmake_minimum_required(VERSION 3.10)'
cp ${libdbusmenu-jb}/lib/libdbusmenu-glib.a libdbusmenu-glib.a
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib
mv libdbm.so $out/lib/libdbm.so
runHook postInstall
'';
meta = {
description = "libdbusmenu wrapper by JetBrains for their IDEs";
homepage = "https://github.com/JetBrains/intellij-community/tree/master/native/LinuxGlobalMenu";
license = lib.licenses.asl20;
teams = [ lib.teams.jetbrains ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,11 @@
--- a/libdbusmenu-glib/dbusmenu-glib-0.4.pc.in
+++ b/libdbusmenu-glib/dbusmenu-glib-0.4.pc.in
@@ -5,7 +5,7 @@
includedir=@includedir@
Cflags: -I${includedir}/libdbusmenu-glib-0.4
-Requires:
+Requires: glib-2.0
Libs: -L${libdir} -ldbusmenu-glib
Name: libdbusmenu-glib

View File

@@ -223,11 +223,11 @@ jdk.overrideAttrs (oldAttrs: {
your own risk.
'';
homepage = "https://confluence.jetbrains.com/display/JBR/JetBrains+Runtime";
inherit (jdk.meta) license platforms mainProgram;
inherit (jdk.meta) license mainProgram;
maintainers = with lib.maintainers; [
aoli-al
];
broken = stdenv.hostPlatform.isDarwin;
platforms = lib.platforms.linux;
};
})