[findbugs/f20] Fix Ant task (bug #1080682)

richardfearn richardfearn at fedoraproject.org
Sun Jun 22 17:54:54 UTC 2014


commit e00d15ce61f8ccd501548da92ea04366b3d493e9
Author: Richard Fearn <richardfearn at gmail.com>
Date:   Sun Jun 22 18:37:57 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 ae8fd83..ed2fd11 100644
--- a/findbugs.spec
+++ b/findbugs.spec
@@ -2,7 +2,7 @@
 
 Name:           findbugs
 Version:        2.0.3
-Release:        3%{?dist}
+Release:        4%{?dist}
 Summary:        Find bugs in Java code
 
 Group:          Development/Languages
@@ -32,6 +32,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
@@ -99,6 +103,7 @@ README.fedora for more information.
 %setup -a 5
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 cp -p %{SOURCE2} README.fedora
 
@@ -165,6 +170,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-asm/asm objectweb-asm/asm-tree \
+  objectweb-asm/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
 
@@ -201,6 +214,10 @@ cp %{SOURCE4} $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}-annotations.pom
 %{_javadir}/findbugs-tools.jar
 
 %changelog
+* Sun Jun 22 2014 Richard Fearn <richardfearn at gmail.com> - 2.0.3-4
+- Allow Ant task to work even though findbugs.jar has no Class-Path attribute
+  in its manifest (bug #1080682)
+
 * Mon Jan 13 2014 Marek Goldmann <mgoldman at redhat.com> - 2.0.3-3
 - Use current POM's, RHBZ#1052081
 


More information about the scm-commits mailing list