Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > by-pkgid > e26d387d050fc304a3c4be4543ffcf5d > files > 4

pmd-4.2.1-2.0.4mdv2010.1.src.rpm

# Copyright (c) 2000-2005, JPackage Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the
#    distribution.
# 3. Neither the name of the JPackage Project nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

%define gcj_support 1

Name:           pmd
Version:        4.2.1
Release:        %mkrel 2.0.4
Epoch:          0
Summary:        Scans Java source code and looks for potential problems
License:        BSD Style
URL:            http://pmd.sourceforge.net/
## svn export https://pmd.svn.sourceforge.net/svnroot/pmd/tags/pmd/pmd_release_4_2_1 pmd && tar cvjf pmd-src.tar.bz2 pmd
#Source0:        %{name}-src.tar.bz2
Source0:        http://downloads.sourceforge.net/pmd/pmd-src-4.2.1.zip
Patch0:         %{name}-asm.patch
Patch1:         %{name}-4.2.1-no-retroweaver.patch
BuildRequires:  java-rpmbuild >= 0:1.6
BuildRequires:  ant >= 0:1.6
BuildRequires:  ant-nodeps
BuildRequires:  javacc
BuildRequires:  junit4
BuildRequires:  jaxen >= 0:1.1
BuildRequires:  xerces-j2
BuildRequires:  xml-commons-jaxp-1.3-apis >= 1.3.02
BuildRequires:  jakarta-oro
BuildRequires:  asm2
Requires:       jaxen >= 0:1.1
Requires:       xerces-j2
Requires:       xml-commons-jaxp-1.3-apis >= 1.3.02
Requires:       jakarta-oro
Group:          Development/Java
%if %{gcj_support}
BuildRequires:  java-gcj-compat-devel
%else
BuildArch:      noarch
BuildRequires:  java-devel
%endif
Buildroot:      %{_tmppath}/%{name}-%{version}-%{release}-root

%description
PMD scans Java source code and looks for potential 
problems like:
+ Unused local variables 
+ Empty catch blocks 
+ Unused parameters 
+ Empty 'if' statements 
+ Duplicate import statements 
+ Unused private methods 
+ Classes which could be Singletons 
+ Short/long variable and method names 
PMD has plugins for JDeveloper, JEdit, JBuilder, 
NetBeans/Sun ONE Studio, IntelliJ IDEA, TextPad, 
Maven, Ant, Eclipse, Gel, and Emacs. 

%package manual
Summary:        Manual for %{name}
Group:          Development/Java

%description manual
Documentation for %{name}.

%package javadoc
Summary:        Javadoc for %{name}
Group:          Development/Java

%description javadoc
Javadoc for %{name}.

%prep
%setup -q
# XXX: uses internal junit4 API
%{__rm} -r regress/test/net/sourceforge/pmd/*
##%{_bindir}/find . -type d -name "*.svn" | %{_bindir}/xargs -t %{__rm} -r
%{__perl} -pi -e 's/\r\n$/\n/g' src/net/sourceforge/pmd/dcd/graph/UsageGraphBuilder.java
%patch0 -p1
%patch1 -p1
%{__perl} -pi -e 's/<javac( |$)/<javac nowarn="true" /g' bin/build.xml
%{__perl} -pi -e 's/JavaCharStream\.java/CharStream.java/g' bin/build.xml

# set right permissions
%{_bindir}/find . -name "*.sh" | %{_bindir}/xargs -t %{__chmod} 755
# remove all binary libs
%{_bindir}/find . -name "*.jar" | %{_bindir}/xargs -t %{__rm}

#%{__rm} src/net/sourceforge/pmd/ast/*

%build
export OPT_JAR_LIST="ant/ant-nodeps"
export CLASSPATH=$(%{_bindir}/build-classpath \
javacc \
jaxen \
oro \
junit4 \
xerces-j2 \
xml-commons-jaxp-1.3-apis \
asm2\ )\
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
cd bin
%{ant} -Dbuild.sysclasspath=only -Djavacc-home.path=%{_javadir} jjtree jspjjtree cppjavacc jar javadoc

%install
rm -rf $RPM_BUILD_ROOT

# jar
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}
install -m 644 lib/%{name}-%{version}.jar \
  $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}.jar; \
   do ln -sf ${jar} ${jar/-%{version}/}; done)
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/etc
cp -a etc/* $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/etc
%{__perl} -pi -e 's|/usr/local/bin|%{_bindir}|' $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/etc/*.rb
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/rulesets
cp -a rulesets/* $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/rulesets

# javadoc
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
cp -a docs/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}

# manual
install -d -m 755 $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp -a LICENSE.txt $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}

%if %{gcj_support}
%{_bindir}/aot-compile-rpm
%endif

%clean
rm -rf $RPM_BUILD_ROOT

%if %{gcj_support}
%post
%{update_gcjdb}

%postun
%{clean_gcjdb}
%endif

%files
%defattr(0644,root,root,0755)
%doc LICENSE.txt
%{_javadir}/*.jar
%if %{gcj_support}
%dir %{_libdir}/gcj/%{name}
%attr(-,root,root) %{_libdir}/gcj/%{name}/*
%endif
%dir %{_datadir}/%{name}-%{version}
%attr(-,root,root) %{_datadir}/%{name}-%{version}/*
#E: pmd non-executable-script /usr/share/pmd-4.0/etc/fr_docs/copy_up.sh 0644
#E: pmd wrong-script-interpreter /usr/share/pmd-4.0/etc/rule_summary.rb "/usr/local/bin/ruby"
#E: pmd non-executable-script /usr/share/pmd-4.0/etc/rule_summary.rb 0644
#E: pmd invalid-dependency /usr/local/bin/ruby

%files manual
%defattr(0644,root,root,0755)
%doc %{_docdir}/%{name}-%{version}

%files javadoc
%defattr(0644,root,root,0755)
%{_javadocdir}/*


%changelog
* Wed Mar 17 2010 Oden Eriksson <oeriksson@mandriva.com> 0:4.2.1-2.0.4mdv2010.1
+ Revision: 523691
- rebuilt for 2010.1

* Mon Oct 05 2009 Funda Wang <fwang@mandriva.org> 0:4.2.1-2.0.3mdv2010.0
+ Revision: 453746
- rebuild

  + Christophe Fergeau <cfergeau@mandriva.com>
    - rebuild

* Thu Aug 07 2008 Thierry Vignaud <tv@mandriva.org> 0:4.2.1-2.0.1mdv2009.0
+ Revision: 265471
- rebuild early 2009.0 package (before pixel changes)

* Mon Apr 21 2008 David Walluck <walluck@mandriva.org> 0:4.2.1-0.0.1mdv2009.0
+ Revision: 196032
- 4.2.1

* Fri Jan 25 2008 Alexander Kurtakov <akurtakov@mandriva.org> 0:4.0-0.0.4mdv2008.1
+ Revision: 157960
- fix build - BR asm2

  + Olivier Blin <oblin@mandriva.com>
    - restore BuildRoot

  + Thierry Vignaud <tv@mandriva.org>
    - kill re-definition of %%buildroot on Pixel's request

  + Anssi Hannula <anssi@mandriva.org>
    - buildrequire java-rpmbuild, i.e. build with icedtea on x86(_64)

* Sat Sep 15 2007 Anssi Hannula <anssi@mandriva.org> 0:4.0-0.0.2mdv2008.0
+ Revision: 87336
- rebuild to filter out autorequires of GCJ AOT objects
- remove unnecessary Requires(post) on java-gcj-compat

* Wed Jul 25 2007 David Walluck <walluck@mandriva.org> 0:4.0-0.0.1mdv2008.0
+ Revision: 55248
- 4.0

* Wed Jul 18 2007 Anssi Hannula <anssi@mandriva.org> 0:3.6-1.3.2mdv2008.0
+ Revision: 53204
- use xml-commons-jaxp-1.3-apis explicitely instead of the generic
  xml-commons-apis which is provided by multiple packages (see bug #31473)

* Wed Jul 04 2007 David Walluck <walluck@mandriva.org> 0:3.6-1.3.1mdv2008.0
+ Revision: 47972
- Import pmd



* Mon Mar 26 2007 Matt Wringe <mwringe@redhat.com> - 0:3.6-1jpp.3
- Fix unowned doc directory for pmd

* Mon Mar 19 2007 Matt Wringe <mwringe@redhat.com> - 0:3.6-1jpp.2
- Add missing jakarta-commons-oro build requires

* Tue Mar 13 2007 Jeff Johnston <jjohnstn@redhat.com> - 0:3.6-1jpp.1
- Updated per Fedora package review process
- Resolves: #227109

* Mon Jun 19 2006 Deepak Bhole <dbhole@redhat.com> - 0:3.6-1jpp
- Upgrade to 3.6

* Fri Mar 10 2006 Fernando Nasser <fnasser@redhat.com> - 0:3.3-2jpp
- First JPP 1.7 build

* Wed Nov 09 2005 Ralph Apel <r.apel at r-apel.de> - 0:3.3-1jpp
- Upgrade to 3.3
- Fix Groups

* Tue Feb 22 2005 Laurent Goujon <laurent at gobio2.net> - 2.3-1jpp
- Upgrade to 2.3
- Use bin/build.xml

* Mon Sep 13 2004 Ralph Apel <r.apel at r-apel.de> - 1.9-2jpp
- Drop saxpath requirements
- Require jaxen >= 0:1.1
- Relax some versioned requirements

* Wed Aug 25 2004 Fernando Nasser <fnasser@redhat.com> - 1.9-1jpp
- Upgrade to 1.9

* Wed Aug 24 2004 Fernando Nasser <fnasser@redhat.com> - 0:1.5-4jpp
- Rebuild with Ant 1.6.2

* Fri Aug 06 2004 Ralph Apel <r.apel at r-apel.de> - 1.5-3jpp
- Void change

* Tue Jun 01 2004 Randy Watler <rwatler at finali.com> - 1.5-2jpp
- Upgrade to Ant 1.6.X

* Wed Mar 24 2004 Ralph Apel <r.apel at r-apel.de> 1.5-1jpp
- first JPackage release