diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-08-08 16:04:42 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-08-13 06:35:37 +0000 |
commit | 12aaa58dac35800b5b7d77f81cf2a87c21ee55da (patch) | |
tree | be0add9e5c22a85d20b5d78206aa74f956eb2a1b /nixpkgs/pkgs/applications/editors/jetbrains/default.nix | |
parent | 45892a5591202f75a1c2f1ca7c62a92c7566e3c5 (diff) | |
parent | 5a8e9243812ba528000995b294292d3b5e120947 (diff) | |
download | nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.gz nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.bz2 nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.lz nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.xz nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.zst nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.zip |
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/pkgs/applications/window-managers/sway/default.nix nixpkgs/pkgs/build-support/go/module.nix nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix nixpkgs/pkgs/development/libraries/mesa/default.nix nixpkgs/pkgs/servers/dict/dictd-db.nix Link: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/issues/391
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/jetbrains/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/editors/jetbrains/default.nix | 159 |
1 files changed, 89 insertions, 70 deletions
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix index d49d099971ab..71bf0eaeb5a5 100644 --- a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix +++ b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix @@ -1,5 +1,13 @@ -{ lib, stdenv, callPackage, fetchurl -, jdk, cmake, gdb, zlib, python3, icu +{ lib +, stdenv +, callPackage +, fetchurl +, jdk +, cmake +, gdb +, zlib +, python3 +, icu , lldb , dotnet-sdk_6 , maven @@ -27,9 +35,9 @@ let # Sorted alphabetically - buildClion = { pname, version, src, license, description, wmClass, ... }: + buildClion = { pname, version, src, license, description, wmClass, buildNumber, ... }: (mkJetBrainsProduct { - inherit pname version src wmClass jdk; + inherit pname version src wmClass jdk buildNumber; product = "CLion"; meta = with lib; { homepage = "https://www.jetbrains.com/clion/"; @@ -38,14 +46,13 @@ let Enhancing productivity for every C and C++ developer on Linux, macOS and Windows. ''; - maintainers = with maintainers; [ edwtjo mic92 ]; + maintainers = with maintainers; [ edwtjo mic92 tymscar ]; }; }).overrideAttrs (attrs: { - nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ lib.optionals (stdenv.isLinux) [ + nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ lib.optionals (stdenv.isLinux) [ autoPatchelfHook - patchelf ]; - buildInputs = (attrs.buildInputs or []) ++ lib.optionals (stdenv.isLinux) [ + buildInputs = (attrs.buildInputs or [ ]) ++ lib.optionals (stdenv.isLinux) [ python3 stdenv.cc.cc libdbusmenu @@ -57,12 +64,12 @@ let postFixup = (attrs.postFixup or "") + lib.optionalString (stdenv.isLinux) '' ( cd $out/clion - # bundled cmake does not find libc - rm -rf bin/cmake/linux - ln -s ${cmake} bin/cmake/linux - # bundled gdb does not find libcrypto 10 - rm -rf bin/gdb/linux - ln -s ${gdb} bin/gdb/linux + + # I think the included gdb has a couple of patches, so we patch it instead of replacing + ls -d $PWD/bin/gdb/linux/x64/lib/python3.8/lib-dynload/* | + xargs patchelf \ + --replace-needed libssl.so.10 libssl.so \ + --replace-needed libcrypto.so.10 libcrypto.so ls -d $PWD/bin/lldb/linux/x64/lib/python3.8/lib-dynload/* | xargs patchelf \ @@ -70,16 +77,13 @@ let --replace-needed libcrypto.so.10 libcrypto.so autoPatchelf $PWD/bin - - wrapProgram $out/bin/clion \ - --set CL_JDK "${jdk}" ) ''; }); - buildDataGrip = { pname, version, src, license, description, wmClass, ... }: + buildDataGrip = { pname, version, src, license, description, wmClass, buildNumber, ... }: (mkJetBrainsProduct { - inherit pname version src wmClass jdk; + inherit pname version src wmClass jdk buildNumber; product = "DataGrip"; meta = with lib; { homepage = "https://www.jetbrains.com/datagrip/"; @@ -93,24 +97,24 @@ let }; }); - buildDataSpell = { pname, version, src, license, description, wmClass, ... }: - (mkJetBrainsProduct { - inherit pname version src wmClass jdk; - product = "DataSpell"; - meta = with lib; { - homepage = "https://www.jetbrains.com/dataspell/"; - inherit description license platforms; - longDescription = '' - DataSpell is a new IDE from JetBrains built for Data Scientists. - Mainly it integrates Jupyter notebooks in the IntelliJ platform. - ''; - maintainers = with maintainers; [ leona ]; - }; - }); - - buildGateway = { pname, version, src, license, description, wmClass, product, ... }: + buildDataSpell = { pname, version, src, license, description, wmClass, buildNumber, ... }: (mkJetBrainsProduct { - inherit pname version src wmClass jdk product; + inherit pname version src wmClass jdk buildNumber; + product = "DataSpell"; + meta = with lib; { + homepage = "https://www.jetbrains.com/dataspell/"; + inherit description license platforms; + longDescription = '' + DataSpell is a new IDE from JetBrains built for Data Scientists. + Mainly it integrates Jupyter notebooks in the IntelliJ platform. + ''; + maintainers = with maintainers; [ leona ]; + }; + }); + + buildGateway = { pname, version, src, license, description, wmClass, buildNumber, product, ... }: + (mkJetBrainsProduct { + inherit pname version src wmClass jdk buildNumber product; productShort = "Gateway"; meta = with lib; { homepage = "https://www.jetbrains.com/remote-development/gateway/"; @@ -124,10 +128,14 @@ let }; }); - buildGoland = { pname, version, src, license, description, wmClass, ... }: + buildGoland = { pname, version, src, license, description, wmClass, buildNumber, ... }: (mkJetBrainsProduct { - inherit pname version src wmClass jdk; + inherit pname version src wmClass jdk buildNumber; product = "Goland"; + extraWrapperArgs = [ + # fortify source breaks build since delve compiles with -O0 + ''--prefix CGO_CPPFLAGS " " "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"'' + ]; meta = with lib; { homepage = "https://www.jetbrains.com/go/"; inherit description license platforms; @@ -137,24 +145,19 @@ let The new IDE extends the IntelliJ platform with the coding assistance and tool integrations specific for the Go language ''; - maintainers = [ ]; + maintainers = with maintainers; [ tymscar ]; }; }).overrideAttrs (attrs: { postFixup = (attrs.postFixup or "") + lib.optionalString stdenv.isLinux '' interp="$(cat $NIX_CC/nix-support/dynamic-linker)" patchelf --set-interpreter $interp $out/goland/plugins/go-plugin/lib/dlv/linux/dlv - chmod +x $out/goland/plugins/go-plugin/lib/dlv/linux/dlv - - # fortify source breaks build since delve compiles with -O0 - wrapProgram $out/bin/goland \ - --prefix CGO_CPPFLAGS " " "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0" ''; }); - buildIdea = { pname, version, src, license, description, wmClass, product, ... }: + buildIdea = { pname, version, src, license, description, wmClass, buildNumber, product, ... }: (mkJetBrainsProduct { - inherit pname version src wmClass jdk product; + inherit pname version src wmClass jdk buildNumber product; productShort = "IDEA"; extraLdPath = [ zlib ]; extraWrapperArgs = [ @@ -170,14 +173,14 @@ let with JUnit, TestNG, popular SCMs, Ant & Maven. Also known as IntelliJ. ''; - maintainers = with maintainers; [ edwtjo gytis-ivaskevicius steinybot AnatolyPopov ]; + maintainers = with maintainers; [ edwtjo gytis-ivaskevicius steinybot AnatolyPopov tymscar ]; platforms = ideaPlatforms; }; }); - buildMps = { pname, version, src, license, description, wmClass, product, ... }: + buildMps = { pname, version, src, license, description, wmClass, product, buildNumber, ... }: (mkJetBrainsProduct rec { - inherit pname version src wmClass jdk product; + inherit pname version src wmClass jdk buildNumber product; productShort = "MPS"; meta = with lib; { broken = (stdenv.isLinux && stdenv.isAarch64); @@ -193,9 +196,9 @@ let }; }); - buildPhpStorm = { pname, version, src, license, description, wmClass, ... }: + buildPhpStorm = { pname, version, src, license, description, wmClass, buildNumber, ... }: (mkJetBrainsProduct { - inherit pname version src wmClass jdk; + inherit pname version src wmClass jdk buildNumber; product = "PhpStorm"; meta = with lib; { homepage = "https://www.jetbrains.com/phpstorm/"; @@ -205,13 +208,13 @@ let with on-the-fly code analysis, error prevention and automated refactorings for PHP and JavaScript code. ''; - maintainers = with maintainers; [ dritter ]; + maintainers = with maintainers; [ dritter tymscar ]; }; }); - buildPycharm = { pname, version, src, license, description, wmClass, product, cythonSpeedup ? stdenv.isLinux, ... }: + buildPycharm = { pname, version, src, license, description, wmClass, buildNumber, product, cythonSpeedup ? stdenv.isLinux, ... }: (mkJetBrainsProduct { - inherit pname version src wmClass jdk product; + inherit pname version src wmClass jdk buildNumber product; productShort = "PyCharm"; meta = with lib; { broken = (stdenv.isLinux && stdenv.isAarch64); @@ -230,24 +233,24 @@ let providing you almost everything you need for your comfortable and productive development! ''; - maintainers = with maintainers; [ ]; + maintainers = with maintainers; [ genericnerdyusername tymscar ]; }; }).overrideAttrs (finalAttrs: previousAttrs: lib.optionalAttrs cythonSpeedup { buildInputs = with python3.pkgs; [ 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 + 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 }); - buildRider = { pname, version, src, license, description, wmClass, ... }: + buildRider = { pname, version, src, license, description, wmClass, buildNumber, ... }: (mkJetBrainsProduct { - inherit pname version src wmClass jdk; + inherit pname version src wmClass jdk buildNumber; product = "Rider"; # icu is required by Rider.Backend extraLdPath = [ icu ]; @@ -276,21 +279,21 @@ let ''); }); - buildRubyMine = { pname, version, src, license, description, wmClass, ... }: + buildRubyMine = { pname, version, src, license, description, wmClass, buildNumber, ... }: (mkJetBrainsProduct { - inherit pname version src wmClass jdk; + inherit pname version src wmClass jdk buildNumber; product = "RubyMine"; meta = with lib; { homepage = "https://www.jetbrains.com/ruby/"; inherit description license platforms; longDescription = description; - maintainers = with maintainers; [ edwtjo ]; + maintainers = with maintainers; [ edwtjo tymscar ]; }; }); - buildWebStorm = { pname, version, src, license, description, wmClass, ... }: + buildWebStorm = { pname, version, src, license, description, wmClass, buildNumber, ... }: (mkJetBrainsProduct { - inherit pname version src wmClass jdk; + inherit pname version src wmClass jdk buildNumber; product = "WebStorm"; meta = with lib; { homepage = "https://www.jetbrains.com/webstorm/"; @@ -300,7 +303,7 @@ let and CSS with on-the-fly code analysis, error prevention and automated refactorings for JavaScript code. ''; - maintainers = with maintainers; [ abaldeau ]; + maintainers = with maintainers; [ abaldeau tymscar ]; }; }); @@ -312,7 +315,8 @@ in clion = buildClion rec { pname = "clion"; version = products.clion.version; - description = "C/C++ IDE. New. Intelligent. Cross-platform"; + buildNumber = products.clion.build_number; + description = "C/C++ IDE. New. Intelligent. Cross-platform"; license = lib.licenses.unfree; src = fetchurl { url = products.clion.url; @@ -325,6 +329,7 @@ in datagrip = buildDataGrip rec { pname = "datagrip"; version = products.datagrip.version; + buildNumber = products.datagrip.build_number; description = "Your Swiss Army Knife for Databases and SQL"; license = lib.licenses.unfree; src = fetchurl { @@ -338,6 +343,7 @@ in dataspell = buildDataSpell rec { pname = "dataspell"; version = products.dataspell.version; + buildNumber = products.dataspell.build_number; description = "The IDE for Professional Data Scientists"; license = lib.licenses.unfree; src = fetchurl { @@ -352,6 +358,7 @@ in pname = "gateway"; product = "JetBrains Gateway"; version = products.gateway.version; + buildNumber = products.gateway.build_number; description = "Your single entry point to all remote development environments"; license = lib.licenses.unfree; src = fetchurl { @@ -365,6 +372,7 @@ in goland = buildGoland rec { pname = "goland"; version = products.goland.version; + buildNumber = products.goland.build_number; description = "Up and Coming Go IDE"; license = lib.licenses.unfree; src = fetchurl { @@ -379,6 +387,7 @@ in pname = "idea-community"; product = "IntelliJ IDEA CE"; version = products.idea-community.version; + buildNumber = products.idea-community.build_number; description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; license = lib.licenses.asl20; src = fetchurl { @@ -393,6 +402,7 @@ in pname = "idea-ultimate"; product = "IntelliJ IDEA"; version = products.idea-ultimate.version; + buildNumber = products.idea-ultimate.build_number; description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; license = lib.licenses.unfree; src = fetchurl { @@ -407,6 +417,7 @@ in pname = "mps"; product = "MPS ${products.mps.version}"; version = products.mps.version; + buildNumber = products.mps.build_number; description = "Create your own domain-specific language"; license = lib.licenses.asl20; src = fetchurl { @@ -420,6 +431,7 @@ in phpstorm = buildPhpStorm rec { pname = "phpstorm"; version = products.phpstorm.version; + buildNumber = products.phpstorm.build_number; description = "Professional IDE for Web and PHP developers"; license = lib.licenses.unfree; src = fetchurl { @@ -434,6 +446,7 @@ in pname = "pycharm-community"; product = "PyCharm CE"; version = products.pycharm-community.version; + buildNumber = products.pycharm-community.build_number; description = "PyCharm Community Edition"; license = lib.licenses.asl20; src = fetchurl { @@ -448,6 +461,7 @@ in pname = "pycharm-professional"; product = "PyCharm"; version = products.pycharm-professional.version; + buildNumber = products.pycharm-community.build_number; description = "PyCharm Professional Edition"; license = lib.licenses.unfree; src = fetchurl { @@ -461,6 +475,7 @@ in rider = buildRider rec { pname = "rider"; version = products.rider.version; + buildNumber = products.rider.build_number; description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper"; license = lib.licenses.unfree; src = fetchurl { @@ -474,6 +489,7 @@ in ruby-mine = buildRubyMine rec { pname = "ruby-mine"; version = products.ruby-mine.version; + buildNumber = products.ruby-mine.build_number; description = "The Most Intelligent Ruby and Rails IDE"; license = lib.licenses.unfree; src = fetchurl { @@ -487,6 +503,7 @@ in webstorm = buildWebStorm rec { pname = "webstorm"; version = products.webstorm.version; + buildNumber = products.webstorm.build_number; description = "Professional IDE for Web and JavaScript development"; license = lib.licenses.unfree; src = fetchurl { @@ -497,4 +514,6 @@ in update-channel = products.webstorm.update-channel; }; + plugins = callPackage ./plugins { }; + } |