%bcond_without bootstrap # Main version can be seen here http://www.jetbrains.com/idea/download/index.html # while the build numbers corresponds to tags in VCS %define idea_version 9.0.1 %define idea_build 94.393 Name: intellij-idea Version: %{idea_version}.%{idea_build} Release: 5%{?dist} Summary: IntelliJ IDEA Community Edition IDE Group: Development/Tools License: ASL 2.0 and LGPLv2 and CDDL and SPL # trove4j: LGPLv2 # eawtstub: GPLv2 or CDDL # javacvs: SPL URL: http://www.jetbrains.com/idea/nextversion/free_java_ide.html # git clone --bare git://git.jetbrains.org/idea/community.git idea # cd idea; git archive 94.393 --prefix=idea-94.393/ |xz >idea-94.393.tar.xz Source0: idea-%{idea_build}.tar.xz Source1: intellij-idea-idea Source2: intellij-idea.desktop # Used only for bootstrapping Source10: jps.jar Source11: javac2.jar # Build changes Patch1: 0001-Do-not-install-stuff-from-lib.patch Patch2: 0002-Make-groovy-plugin-build.patch Patch3: 0003-Make-it-build.patch Patch4: 0004-Make-it-build-with-cglib-2.2.patch Patch5: 0005-Rename-javac.util.DefaultFileManager-for-OpenJDK-1.6.patch Patch6: 0006-Scriptlet-and-rules-to-replace-bundled-jars.patch Patch7: 0007-Delete-unneeded-import-that-is-not-compatible-with-O.patch Patch8: 0008-Use-system-wide-installed-gant-ant-and-jps.patch Patch9: 0009-Chop-out-proxy-support-for-CVS-plugin.patch Patch10: 0010-Fix-build-of-svn-plugin-against-newer-svnkit.patch Patch11: 0011-Scriptlet-to-disable-certain-modules.patch # Hacks Patch100: 0001-NotNull-annotations-cause-broken-bytecode-to-be-crea.patch Patch101: 0001-Disable-svn-for-now.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) %if %without bootstrap BuildRequires: jps BuildRequires: intellij-idea %endif BuildRequires: ant BuildRequires: ant-jakarta-oro BuildRequires: antlr BuildRequires: ant-nodeps BuildRequires: cglib = 2.2 BuildRequires: classworlds BuildRequires: commons-beanutils BuildRequires: commons-codec BuildRequires: commons-collections BuildRequires: commons-net BuildRequires: eclipse-jdt BuildRequires: gant BuildRequires: ganymed-ssh2 BuildRequires: gradle-open-api BuildRequires: groovy BuildRequires: jakarta-commons-cli BuildRequires: jakarta-commons-lang BuildRequires: jakarta-commons-logging BuildRequires: jakarta-oro BuildRequires: java-1.6.0-openjdk-devel BuildRequires: javahelp2 BuildRequires: jaxen BuildRequires: jazzy BuildRequires: jdom BuildRequires: jgoodies-forms BuildRequires: jgoodies-looks BuildRequires: jna BuildRequires: jna-examples >= 3.0.9 BuildRequires: junit BuildRequires: junit4 >= 4.6 BuildRequires: log4j BuildRequires: lucene BuildRequires: lucene-core BuildRequires: mercury BuildRequires: microba BuildRequires: nanoxml BuildRequires: objectweb-asm BuildRequires: patricia-trie BuildRequires: picocontainer BuildRequires: plexus-digest BuildRequires: plexus-utils BuildRequires: svnkit BuildRequires: testng BuildRequires: trilead-ssh2 BuildRequires: velocity BuildRequires: xerces-j2 BuildRequires: xmlbeans BuildRequires: xml-commons-resolver BuildRequires: xmlrpc BuildRequires: xstream BuildRequires: ImageMagick BuildRequires: desktop-file-utils Requires: ant-apache-oro Requires: ant-nodeps Requires: cglib Requires: commons-codec Requires: commons-collections Requires: commons-net Requires: eclipse-jdt Requires: groovy Requires: jakarta-commons-lang Requires: jakarta-oro Requires: java-1.6.0-openjdk-devel Requires: javahelp2 Requires: jaxen Requires: jdom Requires: jgoodies-forms Requires: jgoodies-looks Requires: jna Requires: jna-examples Requires: junit Requires: junit4 Requires: log4j Requires: microba Requires: nanoxml Requires: objectweb-asm Requires: picocontainer Requires: velocity Requires: xerces-j2 Requires: xmlbeans Requires: xml-commons-resolver Requires: xmlrpc Requires: xstream %description IntelliJ IDEA Community Edition features an intelligent code editor that has all the smarts for understanding Java code; provides refactorings, code inspections and intentions, super-fast navigation and search. It integrates with such essential tools as JUnit and TestNG, Ant and Maven, and popular version control systems: CVS, Subversion and git. XML-Java interoperability and comprehensive Groovy language support are complemented by the Swing UI designer providing the suite of tools for developing Java desktop applications - such as IntelliJ IDEA itself. %prep %setup -q -n idea-%{idea_build} # The patched gnu-trove, adds some equality classes, # seems like based on 1.0.2 unzip -qd trove4j lib/src/trove4j_src.jar # This is some code specific to cocoa GUI, originates # from netbeans, though not packaged with it when # not on OS X. Not distributed separately. unzip -d eawtstub lib/src/eawtstub_src.zip # Patches %patch1 -p1 -b .Do-not-install-stuff-from-lib %patch2 -p1 -b .Make-groovy-plugin-build %patch3 -p1 -b .Make-it-build %patch4 -p1 -b .Make-it-build-with-cglib-2.2 %patch5 -p1 -b .Rename-javac.util.DefaultFileManager-for-OpenJDK-1.6 %patch6 -p1 -b .Scriptlet-and-rules-to-replace-bundled-jars %patch7 -p1 -b .Delete-unneeded-import-that-is-not-compatible-with-O %patch8 -p1 -b .Use-system-wide-installed-gant-ant-and-jps %patch9 -p1 -b .Chop-out-proxy-support-for-CVS-plugin %patch10 -p1 -b .Fix-build-of-svn-plugin-against-newer-svnkit %patch11 -p1 -b .Scriptlet-to-disable-certain-modules # Hacks %patch100 -p1 -b .NotNull-annotations-cause-broken-bytecode-to-be-crea %build # Build patched trove4j mkdir -p trove4j/out find trove4j/src -name '*.java' |xargs javac -d trove4j/out jar cf trove4j/trove4j.jar -C trove4j/out . # Build standalone eawt stub cd eawtstub ant -Djavac.source=1.5 -Djavac.target=1.5 jar cd .. # We don't build certain modules until we sort out the dependencies sh disablemodules.sh # Replace the prebuilt JARS sh replacedeps.sh - 9.0.1.94.393-5 - Re-enable SVN - Fix License tag - Build breakgen with proper compiler flags * Wed Feb 24 2010 Lubomir Rintel - 9.0.1.94.310-4 - Enable all plugins, except for maven * Tue Feb 23 2010 Lubomir Rintel - 9.0.1.94.310-3 - Build with external jps - Depend upon ourselves -- make it possible to bootstrap * Wed Feb 17 2010 Lubomir Rintel - 9.0.1.94.310-2 - Use objectweb-asm 3.1 instead of asm2, needed for new groovy * Tue Feb 16 2010 Lubomir Rintel - 9.0.1.94.310-1 - Rebase to newest upstream build * Tue Feb 16 2010 Lubomir Rintel - 9.0-0.2.20091028git - Builds against Fedora * Fri Oct 30 2009 Lubomir Rintel - 9.0-0.1.20091028git - Packaging start