Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > a83c5bc08ff955ee5ea81ae834d78c1a > files > 13

findbugs-1.3.9-7.mga3.src.rpm

# 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