File findbugs.spec of Package findbugs

#
# spec file for package findbugs (Version 1.3.9)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2000-2009, JPackage Project
# All rights reserved.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define with()          %{expand:%%{?with_%{1}:1}%%{!?with_%{1}:0}}
%define without()       %{expand:%%{?with_%{1}:0}%%{!?with_%{1}:1}}
%define bcond_with()    %{expand:%%{?_with_%{1}:%%global with_%{1} 1}}
%define bcond_without() %{expand:%%{!?_without_%{1}:%%global with_%{1} 1}}

%bcond_with bundled_jformatstring

%define section free

Name:           findbugs
Version:        1.3.9
Release:        2
Summary:        Bug Pattern Detector for Java
License:        LGPLv2+
Url:            http://findbugs.sourceforge.net/
Group:          Development/Debuggers
# bnc#569639
# rm src/xsl/fancy.xsl
# rm -rf doc/
Source0:        http://download.sourceforge.net/findbugs/findbugs-%{version}-source-suse.tar.bz2
Source1:        findbugs-script
Source2:        findbugs-16x16.png
Source3:        findbugs-32x32.png
Source4:        findbugs-48x48.png
Source5:        findbugs.desktop
Source6:        findbugs-1.3.9.pom
Source7:        findbugs-annotations-1.3.9.pom
Source8:        findbugs-ant-1.3.9.pom
Source9:        findbugs-coreplugin-1.3.9.pom
Source10:       jFormatString-1.3.9.pom
Source1000:     README.manual
Patch0:         findbugs-build_xml.patch
Patch1:         findbugs-bcel.patch
Patch2:         findbugs-manifest.patch
Requires(post): jpackage-utils >= 1.7.3
Requires(postun): jpackage-utils >= 1.7.3
Requires:       bcel5_3
Requires:       dom4j
Requires:       jakarta-commons-lang >= 2.4
Requires:       java >= 1.6.0
Requires:       jaxen
Requires:       jcip-annotations
%if %without bundled_jformatstring
Requires:       jformatstring
%endif
Requires:       jpackage-utils >= 1.7.3
Requires:       jsr-305
BuildRequires:  ant >= 1.6.5
BuildRequires:  ant-nodeps
BuildRequires:  ant-junit
BuildRequires:  bcel5_3
BuildRequires:  desktop-file-utils
BuildRequires:  dom4j
BuildRequires:  jakarta-commons-lang >= 2.4
BuildRequires:  java-devel >= 1.6.0
BuildRequires:  jaxen
BuildRequires:  jcip-annotations
BuildRequires:  jdepend
%if %without bundled_jformatstring
BuildRequires:  jformatstring
%endif
BuildRequires:  jpackage-utils >= 1.7.3
BuildRequires:  jsr-305
BuildRequires:  junit4
BuildRequires:  objectweb-asm >= 3.0
%if %{defined suse_version}
BuildRequires:  fdupes
%endif
BuildArch:      noarch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
FindBugs is a program to find bugs in Java programs. It looks for 
instances of ``bug patterns''---code instances that are likely to be 
errors.

%package javadoc
License:        LGPLv2+
Summary:        Javadoc for %{name}
Group:          Development/Documentation

%description javadoc

%{summary}.

%package manual
License:        LGPLv2+
Summary:        Documents for %{name}
Group:          Development/Documentation

%description manual

%{summary}.

%prep
%setup -q
%patch0 -p0
%patch1 -p1
%patch2 -p1

%{_bindir}/find . -name "*.bat" | %{_bindir}/xargs -t %{__rm}

%if %with bundled_jformatstring
# FIXME: (dwalluck): standalone source code is at
# <https://jformatstring.dev.java.net/>, but using bundled source
# for now
%{__unzip} -qq -d jFormatString lib/jFormatString.jar
pushd jFormatString/
%{_bindir}/find -name "*.class" | %{_bindir}/xargs -t %{__rm}
%{javac} `%{_bindir}/find -name "*.java"`
%{jar} cfm ../lib/jFormatString.jar.no META-INF/MANIFEST.MF .
popd
%{__rm} -r jFormatString/
%endif

%if %with bundled_jformatstring
%{_bindir}/find -name "*.jar" -and -not -name jFormatString.jar | %{_bindir}/xargs -t %{__rm}
%else
%{_bindir}/find -name "*.jar" | %{_bindir}/xargs -t %{__rm}
%endif

%{__rm} src/java/edu/umd/cs/findbugs/gui/OSXAdapter.java
%{__rm} src/java5/edu/umd/cs/findbugs/gui2/OSXAdapter.java

%{__rm} -r src/java5/net/jcip/annotations

pushd lib
%{__ln_s} $(build-classpath bcel5.3)
%{__ln_s} $(build-classpath commons-lang)
%{__ln_s} $(build-classpath dom4j)
%{__ln_s} $(build-classpath jaxen)
%{__ln_s} $(build-classpath jcip-annotations)
%{__ln_s} $(build-classpath jdepend)
%if %without bundled_jformatstring
%{__ln_s} $(build-classpath jformatstring) jFormatString.jar
%endif
%{__ln_s} $(build-classpath jsr-305)
%{__ln_s} $(build-classpath junit4)
%{__ln_s} $(build-classpath objectweb-asm/asm)
%{__ln_s} $(build-classpath objectweb-asm/asm-commons)
%{__ln_s} $(build-classpath objectweb-asm/asm-tree)
popd

%if 0
# FIXME: setup is monolithic right now, as especially the ant task
# doesn't read the CLASSPATH
%{__perl} -p -i -e 's|^Class-Path:.*\n||g' etc/*.MF
%endif

cp %{SOURCE1000} .

%build
export CLASSPATH=
export OPT_JAR_LIST="`%{__cat} %{_sysconfdir}/ant.d/{junit,nodeps}`"

export ANT_OPTS="-Xss1m"
%{ant} build apiJavadoc runjunit

%install
%{__mkdir_p} %{buildroot}%{_javadir}/%{name}/lib
%{__cp} -p lib/findbugs.jar %{buildroot}%{_javadir}/%{name}/lib/findbugs-%{version}.jar
%{__cp} -p lib/findbugs-ant.jar %{buildroot}%{_javadir}/%{name}/lib/findbugs-ant-%{version}.jar
%{__cp} -p lib/annotations.jar %{buildroot}%{_javadir}/%{name}/lib/annotations-%{version}.jar
%if %with bundled_jformatstring
%{__cp} -p lib/jFormatString.jar %{buildroot}%{_javadir}/%{name}/lib/jFormatString-%{version}.jar
%endif

pushd %{buildroot}%{_javadir}/%{name}/lib
%{__ln_s} $(build-classpath bcel5.3)
%{__ln_s} $(build-classpath commons-lang)
%{__ln_s} $(build-classpath dom4j)
%{__ln_s} $(build-classpath jaxen)
%{__ln_s} $(build-classpath jcip-annotations)
%if %without bundled_jformatstring
%{__ln_s} $(build-classpath jformatstring) jFormatString.jar
%endif
%{__ln_s} $(build-classpath jsr-305)
%{__ln_s} $(build-classpath objectweb-asm/asm)
%{__ln_s} $(build-classpath objectweb-asm/asm-commons)
%{__ln_s} $(build-classpath objectweb-asm/asm-tree)
for jar in *-%{version}*; do %{__ln_s} ${jar} ${jar/-%{version}/}; done
popd

%{__cp} -pr plugin/ %{buildroot}%{_javadir}/%{name}/

%{__mkdir_p} %{buildroot}%{_sysconfdir}/ant.d
%{__cat} > %{buildroot}%{_sysconfdir}/ant.d/%{name} << EOF
findbugs/lib/findbugs findbugs/lib/findbugs-ant
EOF

%{__mkdir_p} %{buildroot}%{_datadir}/maven2/poms
%{__cp} -p %{SOURCE6} %{buildroot}%{_datadir}/maven2/poms/JPP.findbugs.lib-findbugs.pom
%add_to_maven_depmap %{name} %{name} %{version} JPP/%{name}/lib %{name}
%{__cp} -p %{SOURCE7} %{buildroot}%{_datadir}/maven2/poms/JPP.findbugs.lib-annotations.pom
%add_to_maven_depmap %{name} annotations %{version} JPP/%{name}/lib annotations
%{__cp} -p %{SOURCE8} %{buildroot}%{_datadir}/maven2/poms/JPP.findbugs.lib-findbugs-ant.pom
%add_to_maven_depmap %{name} %{name}-ant %{version} JPP/%{name}/lib %{name}-ant
%{__cp} -p %{SOURCE9} %{buildroot}%{_datadir}/maven2/poms/JPP.findbugs.plugin-coreplugin.pom
%add_to_maven_depmap %{name} coreplugin %{version} JPP/%{name}/plugin coreplugin
%{__cp} -p %{SOURCE10} %{buildroot}%{_datadir}/maven2/poms/JPP.findbugs.lib-jFormatString.pom
%add_to_maven_depmap %{name} jFormatString %{version} JPP/%{name}/lib jFormatString

%{__mkdir_p} %{buildroot}%{_bindir}
%{__cp} -p %{SOURCE1} %{buildroot}%{_bindir}/%{name}

%{__mkdir_p} %{buildroot}%{_javadocdir}/%{name}-%{version}
# FIXME: (dwalluck): javadoc (openjdk6) throws NPE
%{__cp} -pr apiJavaDoc/* %{buildroot}%{_javadocdir}/%{name}-%{version} || :
(cd %{buildroot}%{_javadocdir} && %{__ln_s} %{name}-%{version} %{name})

%{__mkdir_p} %{buildroot}%{_datadir}/applications
%{_bindir}/desktop-file-install --vendor jpackage --dir %{buildroot}%{_datadir}/applications %{SOURCE5}
%{__install} -D -p -m 644 %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
%{__install} -D -p -m 644 %{SOURCE3} %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
%{__install} -D -p -m 644 %{SOURCE4} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
%{__install} -D -p -m 644 %{SOURCE4} %{buildroot}%{_datadir}/pixmaps/%{name}.png

%{__mkdir_p} %{buildroot}%{_datadir}/%{name}-%{version}/bin
%{__cp} -pr bin/* %{buildroot}%{_datadir}/%{name}-%{version}/bin/

%if %{defined suse_version}
%fdupes -s %{buildroot}
%endif

%clean
%{__rm} -rf %{buildroot}

%post
%update_maven_depmap

%postun
%update_maven_depmap

%files
%defattr(0644,root,root,0755)
%doc LICENSE.txt README.txt design
%dir %{_javadir}/%{name}
%dir %{_javadir}/%{name}/lib
%dir %{_javadir}/%{name}/plugin
%dir %{_datadir}/%{name}-%{version}
%dir %{_datadir}/%{name}-%{version}/bin
%attr(0755,root,root) %{_bindir}/findbugs
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/addMessages
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/computeBugHistory
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/convertXmlToText
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/copyBuggySource
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/defectDensity
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/deprecated/bugHistory
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/deprecated/unionBugs
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/deprecated/unionResults
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/deprecated/updateBugs
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/experimental/churn
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/experimental/treemapVisualization
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/fbwrap
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/filterBugs
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/findbugs
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/findbugs2
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/findbugs-dbStats
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/findbugs-msv
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/listBugDatabaseInfo
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/mineBugHistory
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/printAppVersion
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/printClass
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/rejarForAnalysis
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/setBugDatabaseInfo
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/unionBugs
%attr(0755,root,root) %{_datadir}/%{name}-%{version}/bin/xpathFind
%{_iconsdir}/hicolor/16x16/apps/findbugs.png
%{_iconsdir}/hicolor/32x32/apps/findbugs.png
%{_iconsdir}/hicolor/48x48/apps/findbugs.png
%{_javadir}/%{name}/lib/annotations-%{version}.jar
%{_javadir}/%{name}/lib/annotations.jar
%{_javadir}/%{name}/lib/asm-commons.jar
%{_javadir}/%{name}/lib/asm-tree.jar
%{_javadir}/%{name}/lib/asm.jar
%{_javadir}/%{name}/lib/bcel5.3.jar
%{_javadir}/%{name}/lib/commons-lang.jar
%{_javadir}/%{name}/lib/dom4j.jar
%{_javadir}/%{name}/lib/findbugs-%{version}.jar
%{_javadir}/%{name}/lib/findbugs-ant-%{version}.jar
%{_javadir}/%{name}/lib/findbugs-ant.jar
%{_javadir}/%{name}/lib/findbugs.jar
%{_javadir}/%{name}/lib/jFormatString.jar
%{_javadir}/%{name}/lib/jaxen.jar
%{_javadir}/%{name}/lib/jcip-annotations.jar
%{_javadir}/%{name}/lib/jsr-305.jar
%doc %{_javadir}/%{name}/plugin/README
%{_datadir}/maven2/poms/JPP.findbugs.lib-annotations.pom
%{_datadir}/maven2/poms/JPP.findbugs.lib-findbugs-ant.pom
%{_datadir}/maven2/poms/JPP.findbugs.lib-findbugs.pom
%{_datadir}/maven2/poms/JPP.findbugs.lib-jFormatString.pom
%{_datadir}/maven2/poms/JPP.findbugs.plugin-coreplugin.pom
%config %{_mavendepmapfragdir}/%{name}
%config %{_sysconfdir}/ant.d/%{name}
%{_datadir}/applications/*%{name}.desktop
#%{_datadir}/icons/*/*/apps/*
%{_datadir}/pixmaps/%{name}.png
%if %{defined suse_version}
%dir %{_datadir}/%{name}-%{version}/bin/deprecated
%dir %{_datadir}/%{name}-%{version}/bin/experimental
%dir %{_datadir}/icons/hicolor
%endif

%files javadoc
%defattr(0644,root,root,0755)
%{_javadocdir}/%{name}-%{version}
%{_javadocdir}/%{name}

%files manual
%defattr(0644,root,root,0755)
%doc README.manual

%changelog
openSUSE Build Service is sponsored by