File intellij-idea.spec of Package intellij-idea

# speedup a bit for now
%global __jar_repack %{nil}

Name:		intellij-idea
Version:	9.0
Release:	0.2.20091028git%{?dist}.os1
Summary:	IntelliJ IDEA Community Edition IDE

Group:		Development/Tools
# XXX:  Trove, EAWT!
License:	ASL 2.0
URL:		http://www.jetbrains.com/idea/nextversion/free_java_ide.html
# git clone --bare git://git.jetbrains.org/idea/community.git intellij-idea-9.0
# (cd intellij-idea-9.0 && git checkout 50da4c)
# tar cf intellij-idea-9.0.tar intellij-idea-9.0 --exclude .git
# xz -9 intellij-idea-9.0.tar
Source0:	%{name}-%{version}.tar.xz
Source1:	intellij-idea-idea
Patch0:		0001-Make-it-build.patch
Patch1:		0001-Fix-with-newer-jna.patch
Patch2:		0001-Do-not-install-stuff-from-lib.patch
Patch3:		0001-Do-not-try-to-use-precompiled-ant-libraries.patch
Patch4:		0001-Rename-javac.util.DefaultFileManager-for-OpenJDK-1.6.patch
Patch5:		0001-Scriptlet-to-disable-modules.patch
Patch6:		0001-Scriptlet-and-rules-to-replace-bundled-jars.patch
Patch7:		0001-Make-it-build-with-cglib-2.2.patch
BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

BuildRequires:  groovy
BuildRequires:  xmlrpc
BuildRequires:  jakarta-commons-codec
BuildRequires:  javahelp2
BuildRequires:  picocontainer
BuildRequires:  objectweb-asm
BuildRequires:  microba
BuildRequires:  oro
BuildRequires:  jgoodies-forms
BuildRequires:  jgoodies-looks
BuildRequires:  nanoxml
BuildRequires:  junit4 >= 4.6
BuildRequires:  jdom
BuildRequires:  xstream
BuildRequires:  jaxen
BuildRequires:  log4j
BuildRequires:  xmlbeans
BuildRequires:  xml-commons-resolver
BuildRequires:  jakarta-commons-net
BuildRequires:  jna-examples >= 3.0.9
BuildRequires:  jna
BuildRequires:  velocity
BuildRequires:  jakarta-commons-lang
BuildRequires:  eclipse-jdt
BuildRequires:  jakarta-commons-collections
BuildRequires:  cglib = 2.2
BuildRequires:  xerces-j2
BuildRequires:  junit
BuildRequires:  xz
BuildRequires:  unzip

Requires:       groovy
Requires:       xmlrpc
Requires:       jakarta-commons-codec
Requires:       javahelp2
Requires:       picocontainer
Requires:       objectweb-asm
Requires:       microba
Requires:       oro
Requires:       jgoodies-forms
Requires:       jgoodies-looks
Requires:       nanoxml
Requires:       junit4 >= 4.6
Requires:       jdom
Requires:       xstream
Requires:       jaxen
Requires:       log4j
Requires:       xmlbeans
Requires:       xml-commons-resolver
Requires:       jakarta-commons-net
Requires:       jna-examples >= 3.0.9
Requires:       jna
Requires:       velocity
Requires:       jakarta-commons-lang
Requires:       jakarta-commons-collections
Requires:       cglib
Requires:       xerces-j2
Requires:       junit
Requires:       eclipse-jdt

%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

# 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
%patch0 -p1 -b .build
%patch1 -p1 -b .jna
%patch2 -p1 -b .lib
%patch3 -p1 -b .ant
%patch4 -p1 -b .ant
%patch5 -p1 -b .modules
%patch6 -p1 -b .deps
%patch7 -p1 -b .cglib22


%build
# Drop prebuilt stuff
# TODO: build/lib/gant
find lib java plugins -name '*.jar' -not -name 'serviceMessages.jar' -delete

# 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 jar
cd ..

# We don't build modules until we sort out the dependencies
# XXX: FIXME!
sh disablemodules.sh

# Replace the prebuilt JARS
sh replacedeps.sh <replacerules.txt

# Fire!
ant


%install
rm -rf $RPM_BUILD_ROOT

install -d $RPM_BUILD_ROOT%{_javadir}/idea
install -d $RPM_BUILD_ROOT%{_libdir}/idea/bin
install -d $RPM_BUILD_ROOT%{_bindir}

install -p -m644 out/dist.all.ce/lib/*.jar trove4j/trove4j.jar \
	$RPM_BUILD_ROOT%{_javadir}/idea
install -p -m644 bin/idea.properties bin/log.xml bin/appletviewer.policy \
	bin/linux/libbreakgen.so $RPM_BUILD_ROOT%{_libdir}/idea/bin
install -p -m755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/idea


%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root,-)
%{_bindir}/idea
%{_libdir}/idea
%{_javadir}/idea
%doc



%changelog
* Fri Oct 30 2009 Lubomir Rintel <lkundrak@v3.sk> - 9.0-0.1.20091028git
- Initial packaging
openSUSE Build Service is sponsored by