diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0a91001 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +/platform-4.1.1.zip +/platform-4.2.1.zip +/platform-4.3.0.zip +/platform-4.3.1.zip +/platform-4.3.2.zip +/platform-4.4.0.zip +/platform-4.4.1.zip +/platform-4.5.0.zip +/platform-4.6.0.zip diff --git a/dead.package b/dead.package deleted file mode 100644 index 7d1fda5..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -zanata-platform fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1676261 diff --git a/sources b/sources new file mode 100644 index 0000000..5df6fd4 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (platform-4.6.0.zip) = afc6de40daa2a61633755ede52b29ccaa282bcb3fb7dc234c4a85736e3898d2aa1580863d41307114c1b5baa5c9c34a6a8e6ed0ebabcd949d97e97f8f27bd0f7 diff --git a/zanata-platform.spec b/zanata-platform.spec new file mode 100644 index 0000000..e1f98fd --- /dev/null +++ b/zanata-platform.spec @@ -0,0 +1,394 @@ +%global findbugs_ver_min 3.0.0 +%global findbugs_version %(rpm -q --qf "%%{version}" findbugs) +%global javac_source_ver 1.8 +%global java_ver_min %{javac_source_ver}.0 +%global jsr305_maven_name mvn(com.google.code.findbugs:jsr305) +%global jsr305_maven_version %(rpm -q --qf "%%{version}" --whatprovides "%{jsr305_maven_name}") +%global resteasy_ver_min 3.0.6 +%global resteasy_version %(rpm -q --qf "%%{version}" resteasy-core) +%global simpleframework_version %(rpm -q --qf "%%{version}" simple) +%global client_sub_modules zanata-rest-client zanata-client-commands zanata-cli +%global client_command_name zanata-cli +%global mvn_build_opts -e -T 1 -DskipUnitTest=true -DskipTests=true -DskipFuncTests=true -DskipArqTests=true dependency:build-classpath -Dmdep.analyze.skip=true -DfailIfNoTests=false -DincludeScope=compile -Dmdep.outputFile=classpath.txt -Prelease -Ddoclint=none + +Name: zanata-platform +Version: 4.6.0 +Release: 1%{?dist} +Summary: Zanata the web-based translation platform + +Group: Development/Tools +License: LGPLv2+ +URL: https://github.com/zanata/%{name} +Source0: https://github.com/zanata/%{name}/archive/platform-%{version}.zip + +BuildArch: noarch + +BuildRequires: maven-local +BuildRequires: java-devel >= 1:%{java_ver_min} +BuildRequires: apache-commons-csv +BuildRequires: args4j >= 2.0.25 +BuildRequires: enunciate >= 2.6.0 +BuildRequires: exec-maven-plugin +BuildRequires: findbugs >= %{findbugs_ver_min} +BuildRequires: jetty-servlet +BuildRequires: jetty-servlets +BuildRequires: jgettext +BuildRequires: jsr-305 +BuildRequires: maven-javadoc-plugin +BuildRequires: mvn(com.google.guava:guava) +BuildRequires: mvn(com.sun:tools) +BuildRequires: mvn(commons-beanutils:commons-beanutils) +BuildRequires: mvn(javax.validation:validation-api) +BuildRequires: mvn(net.sourceforge.findbugs:annotations) +BuildRequires: mvn(org.apache.commons:commons-exec) +BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-clean-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-install-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-site-plugin) +BuildRequires: mvn(org.assertj:assertj-core) +BuildRequires: mvn(org.codehaus.jackson:jackson-core-asl) +BuildRequires: mvn(org.codehaus.mojo:jaxb2-maven-plugin) +BuildRequires: mvn(org.hibernate:hibernate-validator) +BuildRequires: mvn(org.jboss.resteasy:async-http-servlet-3.0) +BuildRequires: mvn(org.jboss.resteasy:jaxrs-api) +BuildRequires: mvn(org.jboss.resteasy:resteasy-jackson-provider) +BuildRequires: mvn(org.jboss.resteasy:resteasy-multipart-provider) +BuildRequires: mvn(org.jboss:jboss-parent:pom:) +BuildRequires: mvn(org.mockito:mockito-core) +BuildRequires: mvn(org.scannotation:scannotation) +BuildRequires: mvn(org.slf4j:jcl-over-slf4j) +BuildRequires: openprops +BuildRequires: powermock-api-mockito +BuildRequires: powermock-core +BuildRequires: powermock-junit4 +BuildRequires: resteasy-core +BuildRequires: simple +BuildRequires: slf4j +BuildRequires: slf4j-log4j12 +BuildRequires: spock-core +BuildRequires: xom +Requires: java-headless >= 1:%{java_ver_min} +Requires: apache-commons-csv +Requires: args4j >= 2.0.25 +Requires: jgettext +Requires: mvn(org.apache.commons:commons-exec) +Requires: openprops +Requires: xom + +Provides: zanata-parent = 1:%{version} +Obsoletes: zanata-parent < 0:30 +Provides: zanata-api = %{version} +Obsoletes: zanata-api < 4.0 +Provides: zanata-common = %{version} +Obsoletes: zanata-common < 4.0 + + +%description +Zanata is a web-based system for translators to translate documentation and +software online using a web-browser. It is written in Java and uses modern web +technologies like JBoss EAP, CDI, Hibernate, and a REST API. It currently +supports translation of DocBook/Publican documentation through PO files, and a +number of other formats. + +The Fedora package contains the command line client so far. + +%package javadoc +Summary: Javadocs for %{name} +Group: Documentation +Requires: %{name} = %{version}-%{release} + +Provides: zanata-api-javadoc = %{version} +Obsoletes: zanata-api-javadoc < 4.0 +Provides: zanata-common-javadoc = %{version} +Obsoletes: zanata-common-javadoc < 4.0 +Provides: zanata-client-javadoc = %{version} +Obsoletes: zanata-client-javadoc < 4.0 + +%description javadoc +This package contains the API documentation for zanata-platform. + +%package -n zanata-client +Summary: Command-line client of Zanata +Group: Development/Tools +Requires: %{name} = %{version}-%{release} + +%description -n zanata-client +Zanata client modules. +Holds most of Zanata's client code, including Zanata CLI. +It also contains REST stub for interacting with a Zanata server. + +%prep +%setup -q -n %{name}-platform-%{version} + +## Remove .jar files in source +rm -f .mvn/wrapper/maven-wrapper.jar +rm -f parent/intellij-code-style-settings.jar + +## Single Thread compile +sed -i -e 's/--T 1.0C/--T 1/' .mvn/maven.config +sed -i -e 's/--builder .*/--builder singlethreaded/' .mvn/maven.config + +## remove SupressFBWarnings, because Fedora does not have edu.umd.cs.findbugs.annotations.SuppressFBWarnings +for jSrc in $( grep -R -l edu.umd.cs --include '*.java' * ); do + sed -i.FBWarnings -e 's/^.*edu.umd.cs.findbugs.annotations.SuppressFBWarnings.*$//' $jSrc + sed -i -e 's/@SuppressFBWarnings.*$//' $jSrc +done + +## Global +%pom_remove_dep -r com.google.code.findbugs:findbugs-annotations +%pom_remove_plugin -r :findbugs-maven-plugin parent +%pom_remove_plugin -r :maven-enforcer-plugin parent + +## root +%pom_xpath_set "pom:parent/pom:relativePath" "parent/pom.xml" +%mvn_artifact pom.xml + +## build-tools +%mvn_artifact build-tools/pom.xml +%pom_xpath_set "pom:packaging" "jar" build-tools + +%pom_xpath_remove "pom:profiles/pom:profile[pom:id='release']/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-gpg-plugin']" build-tools +%pom_remove_plugin :maven-surefire-plugin build-tools +%pom_remove_dep com.lesfurets:jenkins-pipeline-unit build-tools +%pom_remove_dep org.assertj:assertj-core build-tools +rm -fr build-tools/src/test/java/TestJenkinsfile.java + +## parent +%mvn_artifact parent/pom.xml +%pom_remove_plugin :animal-sniffer-maven-plugin parent +%pom_remove_plugin :duplicate-finder-maven-plugin parent +%pom_remove_plugin :gitdescribe-maven-plugin parent +%pom_remove_plugin :jacoco-maven-plugin parent +%pom_remove_plugin :maven-antrun-plugin parent +%pom_remove_plugin :maven-checkstyle-plugin parent +%pom_remove_plugin :maven-deploy-plugin parent +%pom_remove_plugin :maven-eclipse-plugin parent +%pom_remove_plugin :maven-release-plugin parent +%pom_remove_plugin :maven-sortpom-plugin parent +%pom_remove_plugin :maven-source-plugin parent +%pom_remove_plugin :maven-surefire-plugin parent +%pom_remove_plugin :restrict-maven-plugin parent +%pom_remove_plugin :versions-maven-plugin parent +%pom_xpath_inject "pom:properties" "platform-%{version}" parent +%pom_xpath_remove "pom:build/pom:extensions" parent +%pom_xpath_remove "pom:profiles/pom:profile[pom:id='release']/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-gpg-plugin']" parent +%pom_xpath_remove "pom:profiles/pom:profile[pom:id='release']/pom:build/pom:plugins/pom:plugin[pom:artifactId='nexus-staging-maven-plugin']" parent +%pom_xpath_remove "pom:profiles/pom:profile[pom:id='release']/pom:dependencies/pom:dependency[pom:artifactId='aether-api']" parent +%pom_xpath_set "pom:properties/pom:resteasy.version" %{resteasy_version} parent + + +## api +%pom_xpath_set "pom:parent/pom:relativePath" "../parent/pom.xml" api +%mvn_artifact api/pom.xml + +## zanata-common-api +%mvn_artifact api/zanata-common-api/pom.xml api/zanata-common-api/target/zanata-common-api-%{version}.jar +%pom_xpath_set "pom:packaging" "jar" api/zanata-common-api + +%pom_remove_plugin :enunciate-slim-maven-plugin api/zanata-common-api +%pom_remove_plugin :gmaven-plugin api/zanata-common-api +%pom_remove_plugin :maven-shade-plugin api/zanata-common-api +%pom_remove_dep org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.0_spec api/zanata-common-api + +# delete enunciate stuff +rm -rf zanata-common-api/src/test/java/org/zanata/rest/enunciate +rm -rf zanata-common-api/src/test/java/org/zanata/rest/service + +# remove groovy-all and spock +%pom_remove_dep org.codehaus.groovy:groovy-all api/zanata-common-api +%pom_remove_dep org.spockframework:spock-core api/zanata-common-api + + +## common +%pom_xpath_set "pom:parent/pom:relativePath" "../parent/pom.xml" common +%mvn_artifact common/pom.xml + +%pom_add_dep com.google.code.findbugs:jsr305:2.0.1:provided common + +## common/zanata-common-util +%mvn_artifact common/zanata-common-util/pom.xml common/zanata-common-util/target/zanata-common-util-%{version}.jar +%pom_xpath_set "pom:packaging" "jar" common/zanata-common-util + +%pom_xpath_inject "pom:parent" "../pom.xml" common/zanata-common-util + +## common/zanata-adapters +%mvn_artifact common/zanata-adapter-po/pom.xml common/zanata-adapter-po/target/zanata-adapter-po-%{version}.jar +%mvn_artifact common/zanata-adapter-properties/pom.xml common/zanata-adapter-properties/target/zanata-adapter-properties-%{version}.jar +%mvn_artifact common/zanata-adapter-glossary/pom.xml common/zanata-adapter-glossary/target/zanata-adapter-glossary-%{version}.jar +%mvn_artifact common/zanata-adapter-xliff/pom.xml common/zanata-adapter-xliff/target/zanata-adapter-xliff-%{version}.jar +%pom_xpath_set "pom:packaging" "jar" common/zanata-adapter-po +%pom_xpath_set "pom:packaging" "jar" common/zanata-adapter-properties +%pom_xpath_set "pom:packaging" "jar" common/zanata-adapter-glossary +%pom_xpath_set "pom:packaging" "jar" common/zanata-adapter-xliff + + +## client +%pom_xpath_set "pom:parent/pom:relativePath" "../parent/pom.xml" client +%mvn_artifact client/pom.xml +%mvn_package ":zanata-{rest-client,client-commands,cli}" zanata-client +%mvn_package ":client,stub-server" zanata-client + +# Ensure it compile with supported java version +%pom_add_plugin org.apache.maven.plugins:maven-compiler-plugin client "%{javac_source_ver}%{javac_source_ver}truetrue" + +%pom_xpath_set "pom:dependencies/pom:dependency[pom:groupId='org.simpleframework']/pom:artifactId" "simple-http" client +%pom_xpath_set "pom:dependencies/pom:dependency[pom:groupId='org.simpleframework']/pom:version" %{simpleframework_version} client + +## stub-server +%mvn_artifact client/stub-server/pom.xml client/stub-server/target/stub-server-%{version}.jar +%pom_xpath_set "pom:packaging" "jar" client/stub-server + +%pom_remove_dep org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.0_spec client/stub-server +%pom_remove_dep org.scannotation:scannotation client/stub-server +%pom_remove_plugin :duplicate-finder-maven-plugin client/stub-server +%pom_remove_plugin :maven-surefire-plugin client/stub-server + +## rest +%mvn_artifact client/zanata-rest-client/pom.xml client/zanata-rest-client/target/zanata-rest-client-%{version}.jar +%pom_xpath_set "pom:packaging" "jar" client/zanata-rest-client + +rm -fr client/zanata-rest-client/src/test +## remove the test dependency +%pom_remove_plugin :duplicate-finder-maven-plugin client/zanata-rest-client + + +## command +%pom_remove_dep org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.0_spec client/zanata-client-commands +%pom_xpath_set "pom:dependencies/pom:dependency[pom:groupId='org.simpleframework']/pom:artifactId" "simple-http" client/zanata-client-commands + +rm client/zanata-client-commands/src/test/java/org/zanata/client/commands/*.java +rm client/zanata-client-commands/src/test/java/org/zanata/client/commands/init/*.java +rm client/zanata-client-commands/src/test/java/org/zanata/client/commands/push/*.java +rm client/zanata-client-commands/src/test/java/org/zanata/client/commands/pull/*.java + +## remove SupressFBWarnings, because Fedora does not have edu.umd.cs.findbugs.annotations.SuppressFBWarnings +sed -i -e 's/import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;.*$//' client/zanata-client-commands/src/main/java/org/zanata/client/commands/*.java +sed -i -e 's/@SuppressFBWarnings.*$//' client/zanata-client-commands/src/main/java/org/zanata/client/commands/*.java + +%mvn_artifact client/zanata-client-commands/pom.xml client/zanata-client-commands/target/zanata-client-commands-%{version}.jar +%pom_xpath_set "pom:packaging" "jar" client/zanata-client-commands + +## cli +## No need to generate tarball, thus remove assembly-plugin +%pom_remove_plugin :appassembler-maven-plugin client/zanata-cli +%pom_remove_plugin :maven-assembly-plugin client/zanata-cli +%pom_xpath_set "pom:dependencies/pom:dependency[pom:groupId='org.simpleframework']/pom:artifactId" "simple-http" client/zanata-cli + +## simple-6.0.1 does not have org.simpleframework.http.core.ContainerServer.class +rm client/zanata-cli/src/test/java/org/zanata/client/ClientToServerTest.java +rm client/zanata-cli/src/test/java/org/zanata/client/HTTPMockContainer.java + +%mvn_artifact client/zanata-cli/pom.xml client/zanata-cli/target/zanata-cli-%{version}.jar +%pom_xpath_set "pom:packaging" "jar" client/zanata-cli + +## zanata-maven-plugin +# zanata-maven-plugin depends on com.pyx4j:maven-plugin-log4j, +# which is not available in Fedora +%pom_disable_module zanata-maven-plugin client + +## server +# Not packing server at this point +%pom_disable_module server + +%build +%mvn_build -i -X -- %{mvn_build_opts} + +%install +%mvn_install -X -- %{mvn_build_opts} +WorkRoot=$(realpath .) + +cd client +ClientCP= +for mod in . %{client_sub_modules};do + sed -e "s|:|\\n|g" $mod/classpath.txt > $mod/cp.txt + sed -i.bak -e "s|%{_javadir}/||" $mod/cp.txt + sed -i.bak -e "s|.jar||" $mod/cp.txt + sed -i.bak -e "s|$WorkRoot/.*/target|%{name}|" $mod/cp.txt + sed -i.bak -e "s|/usr/lib/java/||" $mod/cp.txt + sed -i.bak -e "s|-%{version}||" $mod/cp.txt + if [ ! $mod = . ];then + echo -e "\n" >> cp.txt + cat $mod/cp.txt >> cp.txt + fi +done +sort -u cp.txt > cp-sorted.txt +ClientCP=$(cat cp-sorted.txt | xargs) +ClientCP+=" %{name}/zanata-cli" +cd - + + +mkdir -p %{buildroot}%{_bindir} + +install -p -d -m 755 %{buildroot}%{_bindir} + +# No need to package javadoc +rm -f %{buildroot}%{_javadocdir}/%{name}/javadoc.sh + +# Variable substitution does not work with 4th parameter +%jpackage_script org.zanata.client.ZanataClient "" "" "" %{client_command_name} true + +# Fix the jpackage_scripts +sed -i -e "s|/etc/java/%{name}|/etc/java/zanata-client|" %{buildroot}%{_bindir}/%{client_command_name} +sed -i -e "s|%{name}rc|zanata-clientrc|" %{buildroot}%{_bindir}/%{client_command_name} +sed -i -e "s|BASE_JARS=.*|BASE_JARS=\"$ClientCP\"|" %{buildroot}%{_bindir}/%{client_command_name} + +chmod 755 %{buildroot}%{_bindir}/zanata-cli +################################################################# + +%files -f .mfiles +%doc README.md docs/release-notes.md CONTRIBUTING.md +%license license.md license-gpl.md + +%files javadoc -f .mfiles-javadoc + +%files -n zanata-client -f .mfiles-zanata-client +%{_bindir}/zanata-cli +%doc client/README.md docs/client/index.md docs/client/configuration.md docs/client/command-hook.md + +%changelog +* Fri Aug 03 2018 Ding-Yi Chen 4.6.0-1 +- Upstream update to 4.6.0 + +* Sat Jul 14 2018 Fedora Release Engineering - 4.5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jun 28 2018 Ding-Yi Chen 4.5.0-1 +- Upstream update to 4.5.0 + +* Fri Feb 09 2018 Fedora Release Engineering - 4.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Feb 01 2018 Ding-Yi Chen 4.4.1-1 +- Upstream update to 4.4.1 + +* Mon Dec 04 2017 Ding-Yi Chen 4.3.2-1 +- Upstream update to 4.3.2 + +* Thu Nov 09 2017 Ding-Yi Chen 4.3.1-1 +- Upstream update to 4.3.1 + +* Tue Oct 31 2017 Ding-Yi Chen 4.3.0-1 +- Upstream update to 4.3.0 + +* Mon Sep 04 2017 Ding-Yi Chen 4.2.4-1 +- Upstream update to 4.2.4 + +* Thu Jul 27 2017 Fedora Release Engineering - 4.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jun 02 2017 Ding-Yi Chen 4.2.1-1 +- Upstream update to 4.2.1 + +* Wed Mar 22 2017 Ding-Yi Chen 4.1.1-4 +- No need to stop on missing javadoc.sh + +* Fri Mar 17 2017 Ding-Yi Chen 4.1.1-3 +- Fixes Bug 1433226 - zanata-cli is mistakenly go to zanata-platform + +* Mon Mar 06 2017 Ding-Yi Chen 4.1.1-2 +- Review issues addressed + +* Mon Mar 06 2017 Ding-Yi Chen 4.1.1-1 +- Initial import of zanata-platform +