%if 0%{?fedora} > 18 %global mvn_exec_plugin exec-maven-plugin %else %global mvn_exec_plugin maven-plugin-exec %endif %global shortname client %global submodule_rest zanata-rest-%{shortname} %global submodule_commands zanata-%{shortname}-commands %global submodule_cli zanata-cli Name: zanata-%{shortname} Version: 2.2.0 Release: 2%{?dist} Summary: Zanata client module Group: Development/Tools License: LGPLv2+ URL: https://github.com/zanata/%{name} Source0: https://github.com/zanata/%{name}/archive/%{shortname}-%{version}.zip Patch0: slf4j-backward-compatible-fix.patch BuildArch: noarch BuildRequires: maven-local BuildRequires: maven-dependency-plugin BuildRequires: maven-enforcer-plugin BuildRequires: maven-surefire-plugin BuildRequires: maven-surefire-provider-testng BuildRequires: maven-surefire-provider-junit4 # dependencies in zanata-rest-client BuildRequires: zanata-parent BuildRequires: zanata-api BuildRequires: junit BuildRequires: resteasy %if 0%{?fedora} < 19 BuildRequires: apache-james-project %endif # dependencies in zanata-common-commands BuildRequires: zanata-common BuildRequires: mockito BuildRequires: apache-commons-configuration BuildRequires: log4j BuildRequires: args4j BuildRequires: openprops BuildRequires: apache-commons-collections BuildRequires: guava BuildRequires: hamcrest BuildRequires: apache-commons-lang BuildRequires: apache-commons-codec BuildRequires: apache-commons-io BuildRequires: opencsv BuildRequires: ant # dependencies in zanata-cli BuildRequires: %mvn_exec_plugin Requires: jpackage-utils Requires: java Requires: slf4j Requires: zanata-api Requires: resteasy Requires: zanata-common Requires: apache-commons-configuration Requires: log4j Requires: args4j Requires: openprops Requires: apache-commons-collections Requires: guava Requires: apache-commons-lang Requires: apache-commons-codec Requires: apache-commons-io Requires: opencsv Requires: ant %description Zanata client modules. Holds most of Zanata's client code, including Zanata CLI. It also contains REST stub for interacting with a Zanata server. %package javadoc Summary: Javadocs for %{name} Group: Documentation Requires: jpackage-utils Requires: %{name} = %{version}-%{release} %description javadoc This package contains the API documentation for %{shortname}. This includes submodules: %{submodule_rest}, %{submodule_commands} and %{submodule_cli}. %prep %setup -q -n %{name}-%{shortname}-%{version} %pom_disable_module zanata-maven-plugin %pom_remove_plugin :appassembler-maven-plugin %{submodule_cli} %pom_remove_plugin :maven-assembly-plugin %{submodule_cli} %if 0%{?fedora} < 18 %patch0 %endif %build # -Dmaven.local.debug=true # we delete all test class under f19 because of hamcrest compatibility issue %if 0%{?fedora} > 19 %mvn_build -- -Dmdep.analyze.skip=true %endif %if 0%{?fedora} == 19 find . -type f -name "*Test.java" | xargs rm %mvn_build -- -Dmdep.analyze.skip=true -DskipTests %else find . -type f -name "*Test.java" | xargs rm mvn-rpmbuild package javadoc:aggregate -DskipTests %endif # local offline maven can not resolve each module, # we have to disable our own module and generate classpath one by one cd %{submodule_rest} mvn-rpmbuild dependency:build-classpath -DincludeScope=compile -Dmdep.outputFile=target/%{submodule_rest}-classpath.txt cd .. %pom_remove_dep org.zanata:%{submodule_rest} %{submodule_commands} cd %{submodule_commands} mvn-rpmbuild dependency:build-classpath -DincludeScope=compile -Dmdep.outputFile=target/%{submodule_commands}-classpath.txt cd .. %pom_remove_dep org.zanata:%{submodule_commands} %{submodule_cli} cd %{submodule_cli} mvn-rpmbuild dependency:build-classpath -DincludeScope=compile -Dmdep.outputFile=target/%{submodule_cli}-classpath.txt %install %if 0%{?fedora} > 18 %mvn_install %else mkdir -p %{buildroot}%{_javadir} cp -p %{submodule_rest}/target/%{submodule_rest}*-%{version}.jar %{buildroot}%{_javadir}/%{submodule_rest}.jar cp -p %{submodule_commands}/target/%{submodule_commands}*-%{version}.jar %{buildroot}%{_javadir}/%{submodule_commands}.jar cp -p %{submodule_cli}/target/%{submodule_cli}*-%{version}.jar %{buildroot}%{_javadir}/%{submodule_cli}.jar mkdir -p %{buildroot}%{_javadocdir}/%{name} cp -rp target/site/apidocs %{buildroot}%{_javadocdir}/%{name}/%{submodule_rest} cp -rp target/site/apidocs %{buildroot}%{_javadocdir}/%{name}/%{submodule_commands} cp -rp target/site/apidocs %{buildroot}%{_javadocdir}/%{name}/%{submodule_cli} install -d -m 755 %{buildroot}%{_mavenpomdir} install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom install -pm 644 %{submodule_rest}/pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{submodule_rest}.pom install -pm 644 %{submodule_commands}/pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{submodule_commands}.pom install -pm 644 %{submodule_cli}/pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{submodule_cli}.pom %add_maven_depmap JPP-%{name}.pom %add_maven_depmap JPP-%{submodule_rest}.pom %{submodule_rest}.jar %add_maven_depmap JPP-%{submodule_commands}.pom %{submodule_commands}.jar %add_maven_depmap JPP-%{submodule_cli}.pom %{submodule_cli}.jar %endif rest_cp=$(cat %{submodule_rest}/target/%{submodule_rest}-classpath.txt) commands_cp=$(cat %{submodule_commands}/target/%{submodule_commands}-classpath.txt) cli_cp=$(cat %{submodule_cli}/target/%{submodule_cli}-classpath.txt) %global CLASSPATH $rest_cp:$commands_cp:$cli_cp mkdir -p %{buildroot}%{_bindir} install -d -m 755 %{buildroot}%{_bindir} # create wrapper script # adapted from jpackage_script(). # We build CLASSPATH at build time and the script won't be able to access it at runtime ############# copied from jpackage_script() ########################### cat > %{buildroot}%{_bindir}/zanata-cli << ZANATA_CLI #!/bin/sh # # %{name} script # JPackage Project # Source functions library . %{_javadir}-utils/java-functions # Source system prefs if [ -f %{_sysconfdir}/java/%{name}.conf ] ; then . %{_sysconfdir}/java/%{name}.conf fi # Source user prefs if [ -f \$HOME/.%{name}rc ] ; then . \$HOME/.%{name}rc fi # Configuration MAIN_CLASS=org.zanata.client.ZanataClient BASE_JARS="%{submodule_rest} %{submodule_commands} %{submodule_cli} slf4j/log4j12 opencsv" CLASSPATH=%{CLASSPATH} # Set parameters set_jvm # we have built CLASSPATH above set_classpath \$BASE_JARS # Let's start run "\$@" ZANATA_CLI chmod 755 %{buildroot}%{_bindir}/zanata-cli ################################################################# %files -f .mfiles %if 0%{?fedora} > 18 %dir %{_javadir}/%{name} %endif %attr(0755,root,root) %{_bindir}/zanata-cli %doc README.txt %if 0%{?fedora} > 18 %files javadoc -f .mfiles-javadoc %else %files javadoc %{_javadocdir}/%{name}/%{submodule_rest} %{_javadocdir}/%{name}/%{submodule_commands} %{_javadocdir}/%{name}/%{submodule_cli} %endif %changelog * Thu May 16 2013 Patrick Huang 2.2.0-2 - Change license to LGPLv2+ * Fri Mar 1 2013 Patrick Huang 2.2.0-1 - Upstream version update * Mon Feb 11 2013 Patrick Huang 2.0.1-1 - Initial RPM package