# GCJ note: findbugs currently cannot be compiled with GCJ. There are several # problems, most of which could be fixed with a little effort. However, # findbugs uses java.util.regex.Pattern.LITERAL, which is part of the Java 5 # specification, but Classpath does not support it. This is a fatal problem. Name: findbugs Version: 1.3.9 Release: %mkrel 7 Summary: Find bugs in Java code Group: Development/Java License: LGPLv2+ URL: http://findbugs.sourceforge.net/ Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}-source.zip Source1: findbugs-ant Source2: findbugs-tools-README # Versions will be fixed in a patch Source3: http://repo1.maven.org/maven2/net/sourceforge/findbugs/findbugs/1.3.7/findbugs-1.3.7.pom Source4: http://repo1.maven.org/maven2/net/sourceforge/findbugs/annotations/1.3.2/annotations-1.3.2.pom Source5: http://repo1.maven.org/maven2/net/sourceforge/findbugs/findbugs-ant/1.3.2/findbugs-ant-1.3.2.pom # This patch has not been submitted upstream, as it contains Fedora-specific # changes. It looks in /usr/share/java for jar files at both compile time and # run time, instead of in findbugs' lib directory. Patch0: findbugs-1.3.9-build.patch # Build against ASM 3.3 instead of 3.1. Already changed upstream; see: # http://code.google.com/p/findbugs/source/detail?r=12605 # http://code.google.com/p/findbugs/source/detail?r=12606 Patch1: findbugs-asm-version.patch %define asm_version 3.3 # Updates the version information in POMs, as we don't have up to date POM's :( Patch2: findbugs-1.3.9-pom.patch # Fedora-specific patch: use Fedora JAR filenames Patch3: findbugs-jar-filenames.patch # Fedora-specific patch to cope with removal of Class-Path & Main-Class entries # from findbugs.jar manifest Patch4: findbugs-remove-classpath.patch # Fedora-specific patch to allow FindBugs launcher scripts to be run from # /bin or /usr/bin (#848612) Patch5: findbugs-home.patch BuildArch: noarch BuildRequires: findbugs-bcel BuildRequires: ant BuildRequires: docbook-style-xsl BuildRequires: apache-commons-lang BuildRequires: java-devel >= 1:1.6.0 BuildRequires: jaxen BuildRequires: jcip-annotations BuildRequires: jdepend BuildRequires: jFormatString BuildRequires: jpackage-utils BuildRequires: jsr-305 BuildRequires: junit4 BuildRequires: objectweb-asm >= %{asm_version} BuildRequires: perl BuildRequires: dom4j BuildRequires: texlive Requires: findbugs-bcel Requires: apache-commons-lang Requires: java >= 1:1.6.0 Requires: jaxen Requires: jcip-annotations Requires: jFormatString Requires: jpackage-utils Requires: jsr-305 Requires: junit4 Requires: objectweb-asm >= %{asm_version} %description Findbugs is a program which uses static analysis to look for bugs in Java code. It can check for null pointer exceptions, multithreaded code errors, and other bugs. %package -n ant-findbugs Group: Development/Java Summary: Ant task for findbugs Requires: %{name} = %{version}-%{release} Requires: ant %description -n ant-findbugs This package defines an ant task for findbugs for easy integration of findbugs into your ant-controlled project. %package javadoc Group: Development/Java Summary: Javadoc documentation for findbugs Requires: %{name} = %{version}-%{release} %description javadoc Javadoc documentation for findbugs. %package tools Group: Development/Java Summary: Addon tools for findbugs Requires: %{name} = %{version}-%{release} Requires: junit4 %description tools This package contains additional tools for use with findbugs. See README.fedora for more information. %prep %setup -q %patch0 -p1 %patch1 -p1 cp -p %{SOURCE3} findbugs.pom cp -p %{SOURCE4} annotations.pom %patch2 -p1 cp -p %{SOURCE5} findbugs-ant.pom sed -i "s|1.3.2|%{version}|" findbugs-ant.pom %patch3 -p1 %patch4 -p1 %patch5 -p1 cp -p %{SOURCE2} README.mageia # Make sure we don't accidentally use any existing JAR files rm -f lib/*.jar # Use the system jcip-annotations instead of building it in rm -fr src/java5/net # Get rid of code for Mac OS X that depends on a jar from Apple rm -f src/java/edu/umd/cs/findbugs/gui/OSXAdapter.java rm -f src/java5/edu/umd/cs/findbugs/gui2/OSXAdapter.java # Turn on the executable bits for some auxiliary scripts chmod a+x etc/summarizeBugs etc/diffBugSummaries design/architecture/mkdep.pl # Remove Class-Path & Main-Class entries from findbugs.jar manifest sed -i '/class-path/I d' etc/MANIFEST-findbugs.MF sed -i '/Main-Class/ d' etc/MANIFEST-findbugs.MF %build # Build the class files ant # Build the javadocs ant apiJavadoc # Build the architecture PDF pushd design/architecture make depend make popd # Package up the tools cd build/classes jar cf ../../lib/findbugs-tools.jar edu/umd/cs/findbugs/tools %install # Install the jars mkdir -p $RPM_BUILD_ROOT%{_javadir} cp -p lib/annotations.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-annotations.jar cp -p lib/%{name}-tools.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-tools.jar cp -p lib/%{name}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar # Install the ant task mkdir -p $RPM_BUILD_ROOT%{_javadir}/ant cp -p lib/%{name}-ant.jar $RPM_BUILD_ROOT%{_javadir}/ant/ant-%{name}.jar mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ant.d cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/ant.d/%{name} # Install the javadocs mkdir -p $RPM_BUILD_ROOT%{_javadocdir} cp -a apiJavaDoc $RPM_BUILD_ROOT%{_javadocdir}/%{name} # Install the scripts mkdir -p $RPM_BUILD_ROOT%{_bindir} for f in $(find bin -maxdepth 1 -type f \! -name '*.bat'); do cp -p $f $RPM_BUILD_ROOT%{_bindir} done # Install the shared files mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name} cp -a etc plugin $RPM_BUILD_ROOT%{_datadir}/%{name} # Remove now unnecessary build-only manual files so %%doc doesn't get them rm -f doc/manual*.xml doc/manual*.xsl # Install poms mkdir -p $RPM_BUILD_ROOT%{_mavenpomdir} cp findbugs.pom $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}.pom cp annotations.pom $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}-annotations.pom cp findbugs-ant.pom $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.ant-ant-%{name}.pom # Add depmaps %add_maven_depmap JPP-%{name}.pom %{name}.jar -a "com.google.code.%{name}:%{name}" %add_maven_depmap JPP-%{name}-annotations.pom %{name}-annotations.jar -a "com.google.code.%{name}:annotations" %add_maven_depmap -f ant JPP.ant-ant-%{name}.pom ant/ant-%{name}.jar -a "com.google.code.%{name}:%{name}-ant" %files %doc LICENSE.txt design/DecouplingFromBCEL.txt design/VisitingAndCaching.txt %doc README.txt design/*.sxw %doc design/architecture/architecture.pdf doc %{_bindir}/* %{_datadir}/%{name} %{_javadir}/%{name}-annotations.jar %{_javadir}/%{name}.jar %{_mavenpomdir}/JPP-%{name}*.pom %{_mavendepmapfragdir}/%{name} %files -n ant-findbugs %doc LICENSE.txt %{_javadir}/ant/ant-%{name}.jar %{_mavenpomdir}/JPP.ant-ant-%{name}.pom %{_mavendepmapfragdir}/%{name}-ant %config(noreplace) %{_sysconfdir}/ant.d/%{name} %files javadoc %{_javadocdir}/%{name} %files tools %doc LICENSE.txt README.mageia %{_javadir}/%{name}-tools.jar %changelog * Fri Feb 08 2013 fwang <fwang> 1.3.9-7.mga3 + Revision: 395558 - fix build with latest rpm * Fri Jan 11 2013 umeabot <umeabot> 1.3.9-6.mga3 + Revision: 350348 - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild * Tue Dec 25 2012 pterjan <pterjan> 1.3.9-5.mga3 + Revision: 335019 - Fix documentation files list for new rpm * Tue Sep 18 2012 dmorgan <dmorgan> 1.3.9-4.mga3 + Revision: 295946 - Fix build - Clean spec file * Sun Jun 24 2012 dmorgan <dmorgan> 1.3.9-2.mga3 + Revision: 262880 - Remove versionned jar files Clean spec file - Fix maven macros * Sun Sep 04 2011 dmorgan <dmorgan> 1.3.9-1.mga2 + Revision: 138498 - Add jdepend as buildrequire - Clean spec file + gil <gil> - imported package findbugs