%define eclipse_base %{_datadir}/eclipse
%define cs_ver 4.1
%define eclipse_ver 3.2
%define gcj_support 1
Summary: Checkstyle plugin for Eclipse
Name: eclipse-checkstyle
Version: 4.0.1
Release: 6%{?dist}
License: LGPL
Group: Development/Tools
URL: http://eclipse-cs.sourceforge.net
Buildroot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
Source0: CheckstylePlugin-v4_0_1.tar.bz2
Source10: checkout_and_build_tarball.sh
# remove problematic getEclipseClasspath call and checkstyle jar inclusion
Patch0: %{name}-%{version}.patch
# remove problematic eclipse 3.0 backwards compatibility
Patch1: %{name}-%{version}-tabwidth.patch
Requires: eclipse-platform >= 1:%{eclipse_ver}
Requires: checkstyle = 0:%{cs_ver}
Requires: checkstyle-optional = 0:%{cs_ver}
BuildRequires: jpackage-utils >= 0:1.5
BuildRequires: ant >= 0:1.6
BuildRequires: eclipse-pde >= 1:%{eclipse_ver}
BuildRequires: checkstyle = 0:%{cs_ver}
BuildRequires: checkstyle-optional = 0:%{cs_ver}
%if %{gcj_support}
BuildRequires: java-gcj-compat-devel >= 1.0.33
Requires(post): java-gcj-compat >= 1.0.33
Requires(postun): java-gcj-compat >= 1.0.33
%else
BuildRequires: java-devel >= 1.4.2
%endif
%description
The Eclipse Checkstyle plugin integrates the Checkstyle Java code
auditor into the Eclipse IDE. The plugin provides real-time feedback
to the user about violations of rules that check for coding style and
possible error prone code constructs.
%prep
%setup -q -c
%patch0
%patch1
# rewrite classpath
perl -p -i -e "s/checkstyle-all-%{cs_ver}.jar/[checkstyle-%{cs_ver}].jar,\
[checkstyle-optional-%{cs_ver}].jar,[commons-beanutils-core].jar,\
[commons-logging].jar,[antlr].jar/g" CheckstylePlugin/META-INF/MANIFEST.MF
%build
# make target directory for build.plugin.docs
mkdir -p target/docs
# remove any precompiled bits (also done in checkout_and_build_tarball.sh)
find . -regextype posix-egrep -regex '.*.jar|.*.zip|.*.class' -type f -print \
| xargs rm -f
# create build classpath
export CLASSPATH=$(build-classpath checkstyle-%{cs_ver} \
checkstyle-optional-%{cs_ver})
for jar in \
%{_libdir}/eclipse/swt-gtk-%{eclipse_ver}.jar \
%{eclipse_base}/plugins/org.eclipse.core.commands_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.core.filebuffers_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.core.resources_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.core.runtime_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.jdt.core_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.jdt.ui_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.jface_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.jface.text_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.osgi_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.swt_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.team.core_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.team.cvs.core_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.text_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.ui_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.ui.editors_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.ui.ide_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.ui.workbench_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.ui.workbench.texteditor_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.equinox.common_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.equinox.registry_%{eclipse_ver}.*.jar \
%{eclipse_base}/plugins/org.eclipse.core.jobs_%{eclipse_ver}.*.jar
do
CLASSPATH=$CLASSPATH:${jar}
done
pushd CheckstylePlugin/build
ant -Dbuild.sysclasspath=only \
-Dcheckstyle.docs.dir=../target/docs \
-Declipse.plugin.dir=%{eclipse_base}/plugins \
-Dworkspace=.. \
-Declipse.version=%{eclipse_ver} \
-Dproject.name=CheckstylePlugin_4.0.1 \
build.bindist
popd
%install
rm -rf %{buildroot}
install -d -m755 %{buildroot}/%{eclipse_base}/features/com.atlassw.tools.eclipse.checkstyle_%{version}
BUILD_DIR=`pwd`/CheckstylePlugin
# install feature
pushd %{buildroot}/%{eclipse_base}/features/com.atlassw.tools.eclipse.checkstyle_%{version}
jar xvf ${BUILD_DIR}/dist/com.atlassw.tools.eclipse.checkstyle_%{version}-feature.jar
popd
# install plugin
pushd %{buildroot}/%{eclipse_base}
jar xvf ${BUILD_DIR}/dist/com.atlassw.tools.eclipse.checkstyle_%{version}-bin.zip
find . -type f -name '*src.zip' -print | xargs -t rm -f
build-jar-repository \
%{buildroot}/%{eclipse_base}/plugins/com.atlassw.tools.eclipse.checkstyle_%{version} \
checkstyle-%{cs_ver} \
checkstyle-optional-%{cs_ver} \
commons-beanutils-core \
commons-logging antlr
popd
%if %{gcj_support}
%{_bindir}/aot-compile-rpm
%endif
%clean
rm -rf %{buildroot}
%if %{gcj_support}
%post
if [ -x %{_bindir}/rebuild-gcj-db ]
then
%{_bindir}/rebuild-gcj-db
fi
%postun
if [ -x %{_bindir}/rebuild-gcj-db ]
then
%{_bindir}/rebuild-gcj-db
fi
%endif
%files
%defattr(-,root,root)
%doc CheckstylePlugin/license/LICENSE.*
%{eclipse_base}/features/*
%{eclipse_base}/plugins/*
%if %{gcj_support}
%attr(-,root,root) %{_libdir}/gcj/%{name}
%endif
%changelog
* Wed May 16 2007 Rob Myers <rob.myers@gtri.gatech.edu> 4.0.1-6
- remove epoch from changelog
* Tue May 15 2007 Rob Myers <rob.myers@gtri.gatech.edu> 4.0.1-5
- add eclipse_ver
- include licenses
- spec cleanup
* Sat May 12 2007 Rob Myers <rob.myers@gtri.gatech.edu> 4.0.1-4
- add gcj_support
- use wildcard to match eclipse library jar for all build architectures
- fine tune Requires
* Fri May 11 2007 Rob Myers <rob.myers@gtri.gatech.edu> 4.0.1-1
- first build for fc7