0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50:33 +03:00

Merge pull request #24526 from miltador/jetbrains

idea: numerous fixes and improvements
This commit is contained in:
Jörg Thalheim 2017-04-11 13:56:20 +02:00 committed by GitHub
commit c84dd4f09e
5 changed files with 174 additions and 106 deletions

View file

@ -35,6 +35,8 @@ following incompatible changes:</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
Top-level <literal>idea</literal> package collection was renamed.
All JetBrains IDEs are now at <literal>jetbrains</literal>.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>

View file

@ -63,6 +63,10 @@ with stdenv; lib.makeOverridable mkDerivation rec {
makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${execName}" \ makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${execName}" \
--prefix PATH : "$out/libexec/${name}:${stdenv.lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \ --prefix PATH : "$out/libexec/${name}:${stdenv.lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
# Some internals want libstdc++.so.6
stdenv.cc.cc.lib
]}" \
--set JDK_HOME "$jdk" \ --set JDK_HOME "$jdk" \
--set ${hiName}_JDK "$jdk" \ --set ${hiName}_JDK "$jdk" \
--set ANDROID_JAVA_HOME "$jdk" \ --set ANDROID_JAVA_HOME "$jdk" \

View file

@ -1,4 +1,4 @@
{ stdenv, callPackage, fetchurl, makeDesktopItem, makeWrapper, patchelf { lib, stdenv, callPackage, fetchurl, makeDesktopItem, makeWrapper, patchelf
, coreutils, gnugrep, which, git, python, unzip, p7zip , coreutils, gnugrep, which, git, python, unzip, p7zip
, androidsdk, jdk , androidsdk, jdk
}: }:
@ -6,10 +6,12 @@
assert stdenv.isLinux; assert stdenv.isLinux;
let let
mkIdeaProduct = callPackage ./common.nix { }; mkJetBrainsProduct = callPackage ./common.nix { };
# Sorted alphabetically
buildClion = { name, version, src, license, description, wmClass }: buildClion = { name, version, src, license, description, wmClass }:
(mkIdeaProduct rec { (mkJetBrainsProduct rec {
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "CLion"; product = "CLion";
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -24,8 +26,43 @@ let
}; };
}); });
buildDataGrip = { name, version, src, license, description, wmClass }:
(mkJetBrainsProduct {
inherit name version src wmClass jdk;
product = "DataGrip";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/datagrip/";
inherit description license;
longDescription = ''
DataGrip is a new IDE from JetBrains built for database admins.
It allows you to quickly migrate and refactor relational databases,
construct efficient, statically checked SQL queries and much more.
'';
maintainers = with maintainers; [ loskutov ];
platforms = platforms.linux;
};
});
buildGogland = { name, version, src, license, description, wmClass }:
(mkJetBrainsProduct {
inherit name version src wmClass jdk;
product = "Gogland";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/go/";
inherit description license;
longDescription = ''
Gogland is the codename for a new commercial IDE by JetBrains
aimed at providing an ergonomic environment for Go development.
The new IDE extends the IntelliJ platform with the coding assistance
and tool integrations specific for the Go language
'';
maintainers = [ maintainers.miltador ];
platforms = platforms.linux;
};
});
buildIdea = { name, version, src, license, description, wmClass }: buildIdea = { name, version, src, license, description, wmClass }:
(mkIdeaProduct rec { (mkJetBrainsProduct rec {
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "IDEA"; product = "IDEA";
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -41,21 +78,8 @@ let
}; };
}); });
buildRubyMine = { name, version, src, license, description, wmClass }:
(mkIdeaProduct rec {
inherit name version src wmClass jdk;
product = "RubyMine";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/ruby/";
inherit description license;
longDescription = description;
maintainers = with maintainers; [ edwtjo ];
platforms = platforms.linux;
};
});
buildPhpStorm = { name, version, src, license, description, wmClass }: buildPhpStorm = { name, version, src, license, description, wmClass }:
(mkIdeaProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "PhpStorm"; product = "PhpStorm";
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -71,25 +95,8 @@ let
}; };
}); });
buildWebStorm = { name, version, src, license, description, wmClass }:
(mkIdeaProduct {
inherit name version src wmClass jdk;
product = "WebStorm";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/webstorm/";
inherit description license;
longDescription = ''
WebStorm provides an editor for HTML, JavaScript (incl. Node.js),
and CSS with on-the-fly code analysis, error prevention and
automated refactorings for JavaScript code.
'';
maintainers = with maintainers; [ abaldeau ];
platforms = platforms.linux;
};
});
buildPycharm = { name, version, src, license, description, wmClass }: buildPycharm = { name, version, src, license, description, wmClass }:
(mkIdeaProduct rec { (mkJetBrainsProduct rec {
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "PyCharm"; product = "PyCharm";
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -115,47 +122,101 @@ let
propagatedUserEnvPkgs = [ python ]; propagatedUserEnvPkgs = [ python ];
}; };
buildDataGrip = { name, version, src, license, description, wmClass }: buildRider = { name, version, src, license, description, wmClass }:
(mkIdeaProduct { lib.overrideDerivation (mkJetBrainsProduct rec {
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "DataGrip"; product = "Rider";
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/datagrip/"; homepage = "https://www.jetbrains.com/rider/";
inherit description license; inherit description license;
longDescription = '' longDescription = ''
DataGrip is a new IDE from JetBrains built for database admins. JetBrains Rider is a new .NET IDE based on the IntelliJ
It allows you to quickly migrate and refactor relational databases, platform and ReSharper. Rider supports .NET Core,
construct efficient, statically checked SQL queries and much more. .NET Framework and Mono based projects. 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 maintainers; [ loskutov ]; maintainers = [ maintainers.miltador ];
platforms = platforms.linux;
};
}) (attrs: {
patchPhase = attrs.patchPhase + ''
# Patch built-in mono for ReSharperHost to start successfully
interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
patchelf --set-interpreter "$interpreter" lib/ReSharperHost/linux-x64/mono/bin/mono-sgen
'';
});
buildRubyMine = { name, version, src, license, description, wmClass }:
(mkJetBrainsProduct rec {
inherit name version src wmClass jdk;
product = "RubyMine";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/ruby/";
inherit description license;
longDescription = description;
maintainers = with maintainers; [ edwtjo ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
}); });
buildWebStorm = { name, version, src, license, description, wmClass }:
(mkJetBrainsProduct {
inherit name version src wmClass jdk;
product = "WebStorm";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/webstorm/";
inherit description license;
longDescription = ''
WebStorm provides an editor for HTML, JavaScript (incl. Node.js),
and CSS with on-the-fly code analysis, error prevention and
automated refactorings for JavaScript code.
'';
maintainers = with maintainers; [ abaldeau ];
platforms = platforms.linux;
};
});
in in
{ {
# Sorted alphabetically
clion = buildClion rec { clion = buildClion rec {
name = "clion-${version}"; name = "clion-${version}";
version = "2016.3.3"; version = "2017.1";
description = "C/C++ IDE. New. Intelligent. Cross-platform"; description = "C/C++ IDE. New. Intelligent. Cross-platform";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz"; url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
sha256 = "1zziyg0y51lfybflq83qwd94wcypkv4gh0cdkwfybbk4yidpnz05"; sha256 = "00fc023ca56f2781864cddc7bd5c2897d837d1db17dd8f987abe046ed4df3ca5";
}; };
wmClass = "jetbrains-clion"; wmClass = "jetbrains-clion";
}; };
clion1 = buildClion rec { datagrip = buildDataGrip rec {
name = "clion-${version}"; name = "datagrip-${version}";
version = "1.2.5"; version = "2017.1";
description = "C/C++ IDE. New. Intelligent. Cross-platform"; description = "Your Swiss Army Knife for Databases and SQL";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/cpp/${name}.tar.gz"; url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
sha256 = "0ll1rcnnbd1if6x5rp3qw35lvp5zdzmvyg9n1lha89i34xiw36jp"; sha256 = "91ee6a1e43d75a45ae51829835e457da85262410d89e617324d0239ba5625dfa";
}; };
wmClass = "jetbrains-clion"; wmClass = "jetbrains-datagrip";
};
gogland = buildGogland rec {
name = "gogland-${version}";
version = "171.3780.106";
description = "Up and Coming Go IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/go/${name}.tar.gz";
sha256 = "cbe84d07fdec6425d8ac63b0ecd5e04148299c1c0c6d05751523aaaa9360110b";
};
wmClass = "jetbrains-gogland";
}; };
idea14-community = buildIdea rec { idea14-community = buildIdea rec {
@ -218,40 +279,28 @@ in
wmClass = "jetbrains-idea"; wmClass = "jetbrains-idea";
}; };
ruby-mine = buildRubyMine rec { phpstorm = buildPhpStorm rec {
name = "ruby-mine-${version}"; name = "phpstorm-${version}";
version = "2016.3.2"; version = "2017.1";
description = "The Most Intelligent Ruby and Rails IDE"; description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "1fqlrvhlk09z8nx68qv4nqs5n8ldia3lixsl6r04gsfyl1a69sb6"; sha256 = "1ynffm5x8fqq2r71rr9rbvdifbwbvbhqb2x1hkyy4az38gxal1bm";
}; };
wmClass = "jetbrains-rubymine"; wmClass = "jetbrains-phpstorm";
}; };
ruby-mine7 = buildRubyMine rec { phpstorm10 = buildPhpStorm rec {
name = "ruby-mine-${version}"; name = "phpstorm-${version}";
version = "7.1.5"; version = "10.0.4";
description = "The Most Intelligent Ruby and Rails IDE"; description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "04fcxj1xlap9mxmwf051s926p2darlj5kwl4lms2gy5d8b2lhd5l"; sha256 = "0fi042zvjpg5pn2mnhj3bbrdkl1b9vmhpf2l6ca4nr0rhjjv7dsm";
}; };
wmClass = "jetbrains-rubymine"; wmClass = "jetbrains-phpstorm";
};
ruby-mine8 = buildRubyMine rec {
name = "ruby-mine-${version}";
version = "8.0.4";
description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "0hipxib7377232w1jbf8h98bmh0djkllsrq3lq0w3fdxqglma43a";
};
wmClass = "jetbrains-rubymine";
}; };
pycharm-community = buildPycharm rec { pycharm-community = buildPycharm rec {
@ -278,28 +327,52 @@ in
wmClass = "jetbrains-pycharm"; wmClass = "jetbrains-pycharm";
}; };
phpstorm = buildPhpStorm rec { rider = buildRider rec {
name = "phpstorm-${version}"; name = "rider-${version}";
version = "2017.1"; version = "171.3655.1246";
description = "Professional IDE for Web and PHP developers"; description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/resharper/riderRS-${version}.tar.gz";
sha256 = "1ynffm5x8fqq2r71rr9rbvdifbwbvbhqb2x1hkyy4az38gxal1bm"; sha256 = "90f9f8f1919e0f1dad42387f1a308483448323b089c13c409f3dd4d52992266b";
}; };
wmClass = "jetbrains-phpstorm"; wmClass = "jetbrains-rider";
}; };
phpstorm10 = buildPhpStorm rec { ruby-mine = buildRubyMine rec {
name = "phpstorm-${version}"; name = "ruby-mine-${version}";
version = "10.0.4"; version = "2017.1";
description = "Professional IDE for Web and PHP developers"; description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "0fi042zvjpg5pn2mnhj3bbrdkl1b9vmhpf2l6ca4nr0rhjjv7dsm"; sha256 = "6c27f43ddc385ffba2cb2f011b80ab46d9b128d0fccf3b4ea43272fe36401a3a";
}; };
wmClass = "jetbrains-phpstorm"; wmClass = "jetbrains-rubymine";
};
ruby-mine7 = buildRubyMine rec {
name = "ruby-mine-${version}";
version = "7.1.5";
description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "04fcxj1xlap9mxmwf051s926p2darlj5kwl4lms2gy5d8b2lhd5l";
};
wmClass = "jetbrains-rubymine";
};
ruby-mine8 = buildRubyMine rec {
name = "ruby-mine-${version}";
version = "8.0.4";
description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "0hipxib7377232w1jbf8h98bmh0djkllsrq3lq0w3fdxqglma43a";
};
wmClass = "jetbrains-rubymine";
}; };
webstorm = buildWebStorm rec { webstorm = buildWebStorm rec {
@ -337,16 +410,4 @@ in
}; };
wmClass = "jetbrains-webstorm"; wmClass = "jetbrains-webstorm";
}; };
datagrip = buildDataGrip rec {
name = "datagrip-${version}";
version = "2016.3.2";
description = "Your Swiss Army Knife for Databases and SQL";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
sha256 = "19njb6i7nl6szql7cy99jmig59b304c6im3988p1dd8dj2j6csv3";
};
wmClass = "jetbrains-datagrip";
};
} }

View file

@ -62,6 +62,7 @@ doNotDisplayTwice rec {
gnustep-make = gnustep.make; # added 2016-7-6 gnustep-make = gnustep.make; # added 2016-7-6
htmlTidy = html-tidy; # added 2014-12-06 htmlTidy = html-tidy; # added 2014-12-06
iana_etc = iana-etc; # added 2017-03-08 iana_etc = iana-etc; # added 2017-03-08
idea = jetbrains; # added 2017-04-03
inherit (haskell.compiler) jhc uhc; # 2015-05-15 inherit (haskell.compiler) jhc uhc; # 2015-05-15
inotifyTools = inotify-tools; inotifyTools = inotify-tools;
joseki = apache-jena-fuseki; # added 2016-02-28 joseki = apache-jena-fuseki; # added 2016-02-28

View file

@ -13890,7 +13890,7 @@ with pkgs;
libart = pkgs.gnome2.libart_lgpl; libart = pkgs.gnome2.libart_lgpl;
}; };
idea = recurseIntoAttrs (callPackages ../applications/editors/idea { androidsdk = androidsdk_extras; }); jetbrains = recurseIntoAttrs (callPackages ../applications/editors/jetbrains { androidsdk = androidsdk_extras; });
libquvi = callPackage ../applications/video/quvi/library.nix { }; libquvi = callPackage ../applications/video/quvi/library.nix { };