[findbugs] Fix Ant task (bug #1080682)
richardfearn
richardfearn at fedoraproject.org
Sun Jun 22 17:12:20 UTC 2014
commit d52d4cd2a2ca9092beb5d7d6de5d78674724589e
Author: Richard Fearn <richardfearn at gmail.com>
Date: Sun Jun 22 17:44:54 2014 +0100
Fix Ant task (bug #1080682)
findbugs-ant-task-classpath.patch | 28 ++++++++++++++++++++++++++++
findbugs.spec | 19 ++++++++++++++++++-
2 files changed, 46 insertions(+), 1 deletions(-)
---
diff --git a/findbugs-ant-task-classpath.patch b/findbugs-ant-task-classpath.patch
new file mode 100644
index 0000000..7c91094
--- /dev/null
+++ b/findbugs-ant-task-classpath.patch
@@ -0,0 +1,28 @@
+diff --git a/src/antTask/edu/umd/cs/findbugs/anttask/AbstractFindBugsTask.java b/src/antTask/edu/umd/cs/findbugs/anttask/AbstractFindBugsTask.java
+index 4a0714d..2d2096f 100644
+--- a/src/antTask/edu/umd/cs/findbugs/anttask/AbstractFindBugsTask.java
++++ b/src/antTask/edu/umd/cs/findbugs/anttask/AbstractFindBugsTask.java
+@@ -28,6 +28,7 @@ import org.apache.tools.ant.BuildException;
+ import org.apache.tools.ant.Task;
+ import org.apache.tools.ant.taskdefs.Java;
+ import org.apache.tools.ant.types.Path;
++import org.apache.tools.ant.types.FileSet;
+ import org.apache.tools.ant.types.Reference;
+
+ /**
+@@ -308,8 +309,13 @@ public abstract class AbstractFindBugsTask extends Task {
+ }
+ File findbugsLibFindBugs = new File(findbugsLib, "findbugs.jar");
+ // log("executing using home dir [" + homeDir + "]");
+- if (findbugsLibFindBugs.exists())
+- findbugsEngine.setClasspath(new Path(getProject(), findbugsLibFindBugs.getPath()));
++ if (findbugsLibFindBugs.exists()) {
++ FileSet findbugsLibFileSet = new FileSet();
++ findbugsLibFileSet.setProject(getProject());
++ findbugsLibFileSet.setDir(findbugsLib);
++ findbugsLibFileSet.setIncludes("*.jar");
++ findbugsEngine.createClasspath().addFileset(findbugsLibFileSet);
++ }
+ else
+ throw new IllegalArgumentException("Can't find findbugs.jar in " + findbugsLib);
+ findbugsEngine.createJvmarg().setValue("-Dfindbugs.home=" + homeDir.getPath());
diff --git a/findbugs.spec b/findbugs.spec
index 89ee1da..ae92ffa 100644
--- a/findbugs.spec
+++ b/findbugs.spec
@@ -2,7 +2,7 @@
Name: findbugs
Version: 2.0.3
-Release: 7%{?dist}
+Release: 8%{?dist}
Summary: Find bugs in Java code
Group: Development/Languages
@@ -34,6 +34,10 @@ Patch0: findbugs-build.patch
# - Simplify shell fragment that determines findbugs_home (also fixes #848612)
Patch1: findbugs-fedora.patch
+# Fedora-specific patch to allow Ant task to work even though findbugs.jar has
+# no Class-Path attribute in its manifest (bug #1080682)
+Patch2: findbugs-ant-task-classpath.patch
+
BuildArch: noarch
BuildRequires: findbugs-bcel
@@ -101,6 +105,7 @@ README.fedora for more information.
%setup -a 5
%patch0 -p1
%patch1 -p1
+%patch2 -p1
cp -p %{SOURCE2} README.fedora
@@ -166,6 +171,14 @@ cp -a etc plugin $RPM_BUILD_ROOT%{_datadir}/%{name}
# Install the noUpdateChecks plugin
cp -p noUpdateChecks-plugin-%{noupdatechecks_version}/build/noUpdateChecks.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/plugin
+# Create /usr/share/findbugs/lib directory containing symlinks to required JARs (bug #1080682)
+# List is based on the Class-Path attribute in etc/MANIFEST-findbugs.MF
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
+for i in findbugs findbugs-bcel dom4j jaxen objectweb-asm3/asm objectweb-asm3/asm-tree \
+ objectweb-asm3/asm-commons jsr-305 jFormatString apache-commons-lang; do
+ ln -s %{_javadir}/$i.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
+done
+
# Remove now unnecessary build-only manual files so %%doc doesn't get them
rm -f doc/manual*.xml doc/manual*.xsl
@@ -199,6 +212,10 @@ cp %{SOURCE6} $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.ant-ant-%{name}.pom
%{_javadir}/findbugs-tools.jar
%changelog
+* Sun Jun 22 2014 Richard Fearn <richardfearn at gmail.com> - 2.0.3-8
+- Allow Ant task to work even though findbugs.jar has no Class-Path attribute
+ in its manifest (bug #1080682)
+
* Sat Jun 21 2014 Richard Fearn <richardfearn at gmail.com> - 2.0.3-7
- Add findbugs-ant POM (bug #1080360) - thanks to gil cattaneo for the patch
- Use .mfiles for ant-findbugs package
More information about the scm-commits
mailing list