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
+