Name: sonar
Version: 3.2
Release: 1%{?dist}
Summary: An open platform to manage code quality
Group: Development/Libraries
License: LGPLv2+
URL: http://www.sonarsource.org/
# git clone git://github.com/SonarSource/sonar.git sonar-3.2
# cd sonar-3.2/ && git archive --format=tar --prefix=sonar-3.2/ 3.2 | xz > ../sonar-3.2-src-git.tar.xz
Source0: %{name}-%{version}-src-git.tar.xz
# require hamcrest 1.1
Source1: %{name}-update-center-1.2-depmap
Patch0: %{name}-3.0-pom.patch
# dbunit with (unavailable) oracle support
Patch1: %{name}-%{version}-remove-oracle.patch
# remove jetty 6.x references
Patch2: %{name}-3.0-remove-jetty-servlet-tester.patch
BuildRequires: java-devel
BuildRequires: jpackage-utils
BuildRequires: apache-commons-codec
BuildRequires: apache-commons-collections
BuildRequires: apache-commons-configuration
BuildRequires: apache-commons-dbcp
BuildRequires: apache-commons-io
BuildRequires: apache-commons-lang
BuildRequires: backport-util-concurrent
BuildRequires: derby
BuildRequires: geronimo-jta
BuildRequires: guava
BuildRequires: hibernate-commons-annotations >= 4.0.1
BuildRequires: hibernate3
BuildRequires: hibernate3-ehcache
BuildRequires: hibernate3-entitymanager
BuildRequires: httpcomponents-client
BuildRequires: jakarta-commons-httpclient
BuildRequires: jcip-annotations
BuildRequires: jfreechart
BuildRequires: jruby
BuildRequires: jruby-rack
BuildRequires: json_simple
BuildRequires: jsr-305
BuildRequires: logback
BuildRequires: maven
BuildRequires: maven-plugin-registry
BuildRequires: maven-profile
BuildRequires: maven-project
BuildRequires: maven-shared-dependency-tree
BuildRequires: maven-wagon
BuildRequires: mybatis
BuildRequires: picocontainer >= 2.14.1
BuildRequires: plexus-classworlds
BuildRequires: plexus-interpolation
BuildRequires: plexus-utils
BuildRequires: slf4j
BuildRequires: sonar-update-center-common
BuildRequires: stax2-api
BuildRequires: staxmate
BuildRequires: woodstox-core
BuildRequires: xalan-j2
BuildRequires: xerces-j2
BuildRequires: xpp3
BuildRequires: xstream
# sonar-application sonar-core sonar-server
BuildRequires: jtds
# sonar-testing-harness
BuildRequires: fest-assert
BuildRequires: dbunit
BuildRequires: reflections
BuildRequires: xmlunit
# test deps
BuildRequires: hamcrest
BuildRequires: junit
BuildRequires: mockito
BuildRequires: pmd
BuildRequires: simple
BuildRequires: tomcat-servlet-3.0-api
BuildRequires: animal-sniffer
BuildRequires: buildnumber-maven-plugin
BuildRequires: maven-compiler-plugin
BuildRequires: maven-enforcer-plugin
BuildRequires: maven-install-plugin
BuildRequires: maven-jar-plugin
BuildRequires: maven-javadoc-plugin
BuildRequires: maven-resources-plugin
BuildRequires: maven-source-plugin
BuildRequires: maven-surefire-plugin
BuildRequires: maven-surefire-provider-junit4
BuildRequires: native2ascii-maven-plugin
BuildRequires: sonar-packaging-maven-plugin
Requires: apache-commons-codec
Requires: apache-commons-collections
Requires: apache-commons-configuration
Requires: apache-commons-dbcp
Requires: apache-commons-io
Requires: apache-commons-lang
Requires: backport-util-concurrent
Requires: derby
Requires: geronimo-jta
Requires: guava
Requires: hibernate-commons-annotations >= 4.0.1
Requires: hibernate3
Requires: hibernate3-ehcache
Requires: hibernate3-entitymanager
Requires: httpcomponents-client
Requires: jakarta-commons-httpclient
Requires: jcip-annotations
Requires: jfreechart
Requires: jruby
Requires: jruby-rack
Requires: json-simple
Requires: jsr-305
Requires: logback
Requires: maven
Requires: maven-plugin-registry
Requires: maven-profile
Requires: maven-project
Requires: maven-shared-dependency-tree
Requires: maven-wagon
Requires: mybatis
Requires: picocontainer >= 2.14.1
Requires: plexus-classworlds
Requires: plexus-interpolation
Requires: plexus-utils
Requires: slf4j
Requires: sonar-update-center-common
Requires: stax2-api
Requires: staxmate
Requires: woodstox-core
Requires: xalan-j2
Requires: xerces-j2
Requires: xpp3
Requires: xstream
Requires: jtds
Requires: java
Requires: jpackage-utils
BuildArch: noarch
%description
Sonar is an open platform to manage code quality.
%package maven3-plugin
Group: Development/Libraries
Summary: Sonar :: Maven3 Plugin
Requires: %{name} = %{version}-%{release}
Requires: maven
Requires: maven-shared-dependency-tree
%description maven3-plugin
%{summary}.
%package plugins
Group: Development/Libraries
Summary: Sonar :: Plugins
Requires: %{name} = %{version}-%{release}
Requires: maven
%description plugins
%{summary}.
%package javadoc
Group: Documentation
Summary: Javadoc for %{name}
Requires: jpackage-utils
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q
%patch0 -p0
%patch1 -p0
%patch2 -p0
find . -name "*.bat" -delete
find . -name "*.class" -delete
find . -name "*.jar" -delete
# TODO require:
# com.google.gwt gwt-incubator 2.0.1
# com.google.gwt gwt-user 2.0.4
# org.codehaus.sonar sonar-dev-maven-plugin 1.3.2
# org.codehaus.mojo gwt-maven-plugin
%pom_disable_module sonar-gwt-api
%pom_disable_module plugins/sonar-core-gwt
%pom_disable_module plugins/sonar-core-plugin
%pom_disable_module plugins/sonar-design-plugin
# TODO require:
# com.puppycrawl.tools checkstyle 5.5
%pom_disable_module plugins/sonar-checkstyle-plugin
%pom_disable_module plugins/sonar-squid-java-plugin
# TODO require:
# org.jacoco org.jacoco.core org.jacoco.agent 0.5.6.201201232323
%pom_disable_module plugins/sonar-jacoco-plugin
# TODO require: findbugs 2.x
%pom_disable_module plugins/sonar-findbugs-plugin
# TODO require: pmd 4.3
%pom_disable_module plugins/sonar-pmd-plugin
sed -i "s|4.3|4.2.5|" sonar-duplications/pom.xml
# require
# org.codehaus.sonar sonar-dev-maven-plugin 1.3.2
# net.sf.alchim yuicompressor-maven-plugin 0.7.1
# org.jruby jruby-complete 1.6.1
# org.jruby.rack jruby-rack 1.0.0.1 jruby-rake-plugin
sed -i "s|jruby-complete|jruby|" $(find . -name "pom.xml")
# require
# net.sourceforge.jtds jtds
# org.mortbay.jetty jetty 6.x
# org.sonatype.jsw-binaries jsw-binaries 3.2.3.6 type tar.gz
# tanukisoft wrapper 3.2.3
# and all plugins in plugins sub dir
%pom_disable_module sonar-application
# TODO sonar-server
# require jetty 6.x
%pom_disable_module sonar-server
%pom_remove_dep org.jruby.rack:jruby-rack
%pom_remove_dep org.mortbay.jetty:jetty-plus
%pom_remove_dep org.mortbay.jetty:jetty-naming
%pom_remove_dep org.mortbay.jetty:jetty
%pom_remove_dep org.mortbay.jetty:jetty-util
%pom_remove_dep org.mortbay.jetty:jetty-servlet-tester
# require maven 2.x
%pom_disable_module sonar-maven-plugin
# these tests breaks the build
rm -rf sonar-colorizer/src/test/java/org/sonar/colorizer/MultilinesDocTokenizerTest.java
rm -rf sonar-graph/src/test/java/org/sonar/graph/FeedbackEdgeTest.java
rm -rf sonar-channel/src/test/java/org/sonar/channel/ChannelDispatcherTest.java
rm -rf sonar-plugin-api/src/test/java/org/sonar/api/utils/HttpDownloaderTest.java
rm -rf sonar-plugin-api/src/test/java/org/sonar/api/utils/RedirectServlet.java
sed -i "s|jetty-servlet-tester|servlet-api|" sonar-plugin-api/pom.xml sonar-ws-client/pom.xml
%pom_xpath_inject "pom:project/pom:dependencies" "
com.google.code.findbugs
jsr305
provided
" sonar-plugin-api
%pom_xpath_inject "pom:project/pom:dependencies" "
com.google.code.findbugs
jsr305
provided
" sonar-duplications
%pom_xpath_inject "pom:project/pom:dependencies" "
org.apache.maven
maven-core
provided
" sonar-plugin-api
%pom_remove_dep org.hibernate:hibernate-annotations sonar-core
%pom_remove_dep org.hibernate:hibernate-annotations sonar-plugin-api
%pom_remove_dep geronimo-spec:geronimo-spec-jta sonar-core
%pom_xpath_inject "pom:project/pom:dependencies" "
org.apache.geronimo.specs
geronimo-jta_1.1_spec
" sonar-core
%pom_xpath_inject "pom:project/pom:dependencies" "
org.hibernate
hibernate-core
" sonar-plugin-api
%pom_remove_plugin net.sf.alchim:yuicompressor-maven-plugin sonar-server
%pom_remove_plugin org.codehaus.sonar:sonar-dev-maven-plugin sonar-server
%pom_remove_dep org.codehaus.sonar:sonar-batch-maven-compat sonar-server
%pom_xpath_inject "pom:project/pom:dependencies" "
backport-util-concurrent
backport-util-concurrent
3.1
org.apache.maven
maven-artifact
3.0.3
org.apache.maven
maven-repository-metadata
3.0.3
org.apache.maven
maven-settings
3.0.3
org.apache.maven
maven-artifact-manager
2.2.1
org.apache.maven
maven-model
2.2.1
org.apache.maven
maven-plugin-registry
2.2.1
org.apache.maven
maven-profile
2.2.1
org.apache.maven
maven-project
2.2.1
org.apache.maven.wagon
wagon-provider-api
1.0
org.codehaus.plexus
plexus-classworlds
2.4
org.codehaus.plexus
plexus-interpolation
1.14
org.codehaus.plexus
plexus-utils
2.0.6
" sonar-plugin-api
%pom_disable_module sonar-batch-maven-compat
# TODO fix commons-email pom
%pom_disable_module plugins/sonar-email-notifications-plugin
# TODO
# circular dependency require org.codehaus.sonar.common-rules sonar-common-rules 1.0.1
%pom_disable_module plugins/sonar-java-plugin
%build
# test failed for various reasons
mvn-rpmbuild -Dmaven.test.failure.ignore=true -Dmaven.local.depmap.file=%{SOURCE1} install javadoc:aggregate
%install
mkdir -p %{buildroot}%{_mavenpomdir}
install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}.pom
%add_maven_depmap JPP.%{name}-%{name}.pom
mkdir -p %{buildroot}%{_javadir}/%{name}
# TODO sonar-application sonar-gwt-api sonar-server
for m in %{name}-batch \
%{name}-batch-bootstrapper \
%{name}-channel \
%{name}-check-api \
%{name}-colorizer \
%{name}-core \
%{name}-deprecated \
%{name}-duplications \
%{name}-graph \
%{name}-java-api \
%{name}-markdown \
%{name}-plugin-api \
%{name}-squid \
%{name}-testing-harness \
%{name}-ws-client; do
install -m 644 ${m}/target/${m}-%{version}.jar %{buildroot}%{_javadir}/%{name}/${m}.jar
install -pm 644 ${m}/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-${m}.pom
%add_maven_depmap JPP.%{name}-${m}.pom %{name}/${m}.jar
done
install -m 644 %{name}-core/target/%{name}-core-%{version}-tests.jar %{buildroot}%{_javadir}/%{name}/%{name}-core-tests.jar
install -m 644 %{name}-plugin-api/target/%{name}-plugin-api-%{version}-tests.jar %{buildroot}%{_javadir}/%{name}/%{name}-plugin-api-tests.jar
install -m 644 %{name}-maven3-plugin/target/%{name}-maven3-plugin-%{version}.jar %{buildroot}%{_javadir}/%{name}/%{name}-maven3-plugin.jar
install -pm 644 %{name}-maven3-plugin/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-maven3-plugin.pom
%add_maven_depmap JPP.%{name}-%{name}-maven3-plugin.pom %{name}/%{name}-maven3-plugin.jar -f maven3-plugin
# TODO sonar-checkstyle-plugin sonar-core-gwt sonar-core-plugin
# sonar-design-plugin sonar-email-notifications-plugin sonar-findbugs-plugin
# sonar-jacoco-plugin sonar-java-plugin sonar-pmd-plugin sonar-squid-java-plugin
for m in %{name}-cobertura-plugin \
%{name}-cpd-plugin \
%{name}-dbcleaner-plugin \
%{name}-l10n-en-plugin \
%{name}-surefire-plugin; do
install -m 644 plugins/${m}/target/${m}-%{version}.jar %{buildroot}%{_javadir}/%{name}/${m}.jar
install -pm 644 plugins/${m}/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-${m}.pom
%add_maven_depmap JPP.%{name}-${m}.pom %{name}/${m}.jar -f plugins
done
mkdir -p %{buildroot}%{_javadocdir}/%{name}
cp -rp target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}
%files
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/%{name}-batch-bootstrapper.jar
%{_javadir}/%{name}/%{name}-batch.jar
%{_javadir}/%{name}/%{name}-channel.jar
%{_javadir}/%{name}/%{name}-check-api.jar
%{_javadir}/%{name}/%{name}-colorizer.jar
%{_javadir}/%{name}/%{name}-core-tests.jar
%{_javadir}/%{name}/%{name}-core.jar
%{_javadir}/%{name}/%{name}-deprecated.jar
%{_javadir}/%{name}/%{name}-duplications.jar
%{_javadir}/%{name}/%{name}-graph.jar
%{_javadir}/%{name}/%{name}-java-api.jar
%{_javadir}/%{name}/%{name}-markdown.jar
%{_javadir}/%{name}/%{name}-plugin-api-tests.jar
%{_javadir}/%{name}/%{name}-plugin-api.jar
%{_javadir}/%{name}/%{name}-squid.jar
%{_javadir}/%{name}/%{name}-testing-harness.jar
%{_javadir}/%{name}/%{name}-ws-client.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-batch-bootstrapper.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-batch.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-channel.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-check-api.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-colorizer.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-core.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-deprecated.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-duplications.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-graph.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-java-api.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-markdown.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-plugin-api.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-squid.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-testing-harness.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-ws-client.pom
%{_mavenpomdir}/JPP.%{name}-%{name}.pom
%{_mavendepmapfragdir}/%{name}
%doc COPYING README.md copyright.txt
%files maven3-plugin
%{_javadir}/%{name}/%{name}-maven3-plugin.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-maven3-plugin.pom
%{_mavendepmapfragdir}/%{name}-maven3-plugin
%doc COPYING copyright.txt
%files plugins
%{_javadir}/%{name}/%{name}-cobertura-plugin.jar
%{_javadir}/%{name}/%{name}-cpd-plugin.jar
%{_javadir}/%{name}/%{name}-dbcleaner-plugin.jar
%{_javadir}/%{name}/%{name}-l10n-en-plugin.jar
%{_javadir}/%{name}/%{name}-surefire-plugin.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-cobertura-plugin.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-cpd-plugin.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-dbcleaner-plugin.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-l10n-en-plugin.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-surefire-plugin.pom
%{_mavendepmapfragdir}/%{name}-plugins
%doc COPYING copyright.txt
%files javadoc
%{_javadocdir}/%{name}
%doc COPYING copyright.txt
%changelog
* Tue Aug 14 2012 gil cattaneo 3.2-1
- Update to 3.2
* Fri Jun 22 2012 gil cattaneo 3.1-1
- Update to 3.1
* Fri Apr 20 2012 gil cattaneo 3.0-1
- Initial rpm