diff --git a/README.en.md b/README.en.md
deleted file mode 100644
index ec5897e..0000000
--- a/README.en.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# rhino
-
-#### Description
-{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
-
-#### Software Architecture
-Software architecture description
-
-#### Installation
-
-1. xxxx
-2. xxxx
-3. xxxx
-
-#### Instructions
-
-1. xxxx
-2. xxxx
-3. xxxx
-
-#### Contribution
-
-1. Fork the repository
-2. Create Feat_xxx branch
-3. Commit your code
-4. Create Pull Request
-
-
-#### Gitee Feature
-
-1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
-2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
-3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
-4. The most valuable open source project [GVP](https://gitee.com/gvp)
-5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
-6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/README.md b/README.md
deleted file mode 100644
index 6f7149c..0000000
--- a/README.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# rhino
-
-#### 介绍
-{**以下是码云平台说明,您可以替换此简介**
-码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
-无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
-
-#### 软件架构
-软件架构说明
-
-
-#### 安装教程
-
-1. xxxx
-2. xxxx
-3. xxxx
-
-#### 使用说明
-
-1. xxxx
-2. xxxx
-3. xxxx
-
-#### 参与贡献
-
-1. Fork 本仓库
-2. 新建 Feat_xxx 分支
-3. 提交代码
-4. 新建 Pull Request
-
-
-#### 码云特技
-
-1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
-2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
-3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
-4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
-5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
-6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/Rhino1_7_7_1_RELEASE.tar.gz b/Rhino1_7_7_1_RELEASE.tar.gz
new file mode 100644
index 0000000..5b07009
Binary files /dev/null and b/Rhino1_7_7_1_RELEASE.tar.gz differ
diff --git a/rhino-1.7.7.1.pom b/rhino-1.7.7.1.pom
new file mode 100644
index 0000000..16d97b8
--- /dev/null
+++ b/rhino-1.7.7.1.pom
@@ -0,0 +1,41 @@
+
+ 4.0.0
+
+
+ org.sonatype.oss
+ oss-parent
+ 7
+
+
+ org.mozilla
+ rhino
+ Mozilla Rhino
+ 1.7.7.1
+
+ jar
+
+ Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically
+ embedded into Java applications to provide scripting to end users.
+
+ https://developer.mozilla.org/en/Rhino
+
+
+
+ Mozilla Public License, Version 2.0
+ http://www.mozilla.org/MPL/2.0/index.txt
+
+
+
+
+ scm:git:git@github.com:mozilla/rhino.git
+ scm:git:git@github.com:mozilla/rhino.git
+ git@github.com:mozilla/rhino.git
+
+
+
+ The Mozilla Foundation
+ http://www.mozilla.org
+
+
diff --git a/rhino-addOrbitManifest.patch b/rhino-addOrbitManifest.patch
new file mode 100644
index 0000000..c2579c7
--- /dev/null
+++ b/rhino-addOrbitManifest.patch
@@ -0,0 +1,32 @@
+--- src/manifest 2015-06-26 09:16:53.592746825 +0300
++++ src/manifest.fixManifest 2015-06-26 09:19:57.296939380 +0300
+@@ -4,3 +4,28 @@ Implementation-Version: 1.7.7-SNAPSHOT
+ Implementation-Title: Mozilla Rhino 1.7.7.1
+ Implementation-Vendor: Mozilla Foundation
+ Implementation-URL: http://www.mozilla.org/rhino
++Bundle-Vendor: %Bundle-Vendor.0
++Bundle-Localization: plugin
++Bundle-RequiredExecutionEnvironment: J2SE-1.5
++Bundle-Name: %Bundle-Name.0
++Bundle-SymbolicName: org.mozilla.javascript
++Bundle-Version: 1.7.7
++Export-Package: org.mozilla.classfile,org.mozilla.javascript,org.mozil
++ la.javascript.debug,org.mozilla.javascript.jdk13,org.mozilla.javascri
++ pt.jdk15,org.mozilla.javascript.optimizer,org.mozilla.javascript.rege
++ xp,org.mozilla.javascript.serialize,org.mozilla.javascript.tools,org.
++ mozilla.javascript.tools.debugger,org.mozilla.javascript.tools.debugg
++ er.treetable,org.mozilla.javascript.tools.idswitch,org.mozilla.javasc
++ ript.tools.jsc,org.mozilla.javascript.tools.shell,org.mozilla.javascr
++ ipt.xml,org.mozilla.javascript.xml.impl.xmlbeans,org.mozilla.javascri
++ pt.xmlimpl
++Bundle-ManifestVersion: 2
++Import-Package: javax.swing;resolution:=optional,javax.swing.border;re
++ solution:=optional,javax.swing.event;resolution:=optional,javax.swing
++ .filechooser;resolution:=optional,javax.swing.table;resolution:=optio
++ nal,javax.swing.text;resolution:=optional,javax.swing.tree;resolution
++ :=optional,javax.xml.namespace;resolution:=optional,javax.xml.parsers
++ ;resolution:=optional,javax.xml.transform;resolution:=optional,javax.
++ xml.transform.dom;resolution:=optional,javax.xml.transform.stream;res
++ olution:=optional,org.w3c.dom;resolution:=optional,org.xml.sax;resolu
++ tion:=optional
+\ No newline at end of file
diff --git a/rhino-build.patch b/rhino-build.patch
new file mode 100644
index 0000000..88469a3
--- /dev/null
+++ b/rhino-build.patch
@@ -0,0 +1,175 @@
+--- a/examples/Matrix.java
++++ b/examples/Matrix.java
+@@ -218,7 +218,7 @@ public class Matrix implements Scriptabl
+ * Use the convenience method from Context that takes care of calling
+ * toString, etc.
+ */
+- public Object getDefaultValue(Class> typeHint) {
++ public Object getDefaultValue(Class typeHint) {
+ return "[object Matrix]";
+ }
+
+--- a/examples/PrimitiveWrapFactory.java
++++ b/examples/PrimitiveWrapFactory.java
+@@ -25,7 +25,7 @@ import org.mozilla.javascript.*;
+ public class PrimitiveWrapFactory extends WrapFactory {
+ @Override
+ public Object wrap(Context cx, Scriptable scope, Object obj,
+- Class> staticType)
++ Class staticType)
+ {
+ if (obj instanceof String || obj instanceof Number ||
+ obj instanceof Boolean)
+--- a/src/org/mozilla/javascript/WrapFactory.java
++++ b/src/org/mozilla/javascript/WrapFactory.java
+@@ -42,7 +42,7 @@ public class WrapFactory
+ * @return the wrapped value.
+ */
+ public Object wrap(Context cx, Scriptable scope,
+- Object obj, Class> staticType)
++ Object obj, Class staticType)
+ {
+ if (obj == null || obj == Undefined.instance
+ || obj instanceof Scriptable)
+--- a/toolsrc/org/mozilla/javascript/tools/debugger/build.xml
++++ b/toolsrc/org/mozilla/javascript/tools/debugger/build.xml
+@@ -8,7 +8,7 @@
+
+
+
+-
+
+
+@@ -16,9 +16,9 @@
+
+-
+-
+-
++
++
++
+
+
+
+@@ -26,58 +26,58 @@
+
+
+
+-
++
+ import java.awt.Component;
+
+-package org.mozilla.javascript.tools.debugger.downloaded;
++package org.mozilla.javascript.tools.debugger.treetable;
+
+
+-
++
+ import java.awt.event.*;
+
+
+-
++
+ import java.awt.AWTEvent;
+
+
+-
++
+ import java.io.Serializable;
+
+
+-
++
+ import javax.swing.*;
+
+- package org.mozilla.javascript.tools.debugger.downloaded;
++ package org.mozilla.javascript.tools.debugger.treetable;
+ import javax.swing.*;
+
+
+-
++
+ class ListToTreeSelectionModelWrapper
+ public class ListToTreeSelectionModelWrapper
+
+-
++
+ ListSelectionModel getListSelectionModel
+ public ListSelectionModel getListSelectionModel
+
+-
++
+ import java.awt.Rectangle;
+
+
+-
++
+ import javax.swing.tree.TreeModel;
+
+- package org.mozilla.javascript.tools.debugger.downloaded;
++ package org.mozilla.javascript.tools.debugger.treetable;
+ import javax.swing.tree.TreeModel;
+
+
+-
++
+ import javax.swing.JTree;
+
+- package org.mozilla.javascript.tools.debugger.downloaded;
++ package org.mozilla.javascript.tools.debugger.treetable;
+ import javax.swing.JTree;
+
+
+-
++
+
+
+
+--- a/toolsrc/org/mozilla/javascript/tools/shell/JavaPolicySecurity.java
++++ b/toolsrc/org/mozilla/javascript/tools/shell/JavaPolicySecurity.java
+@@ -36,7 +36,7 @@ public class JavaPolicySecurity extends
+ return super.defineClass(name, data, 0, data.length, domain);
+ }
+
+- public void linkClass(Class> cl) {
++ public void linkClass(Class cl) {
+ resolveClass(cl);
+ }
+ }
+--- a/xmlimplsrc/org/mozilla/javascript/xmlimpl/Namespace.java
++++ b/xmlimplsrc/org/mozilla/javascript/xmlimpl/Namespace.java
+@@ -86,7 +86,7 @@ class Namespace extends IdScriptableObje
+ }
+
+ @Override
+- public Object getDefaultValue(Class> hint) {
++ public Object getDefaultValue(Class hint) {
+ return uri();
+ }
+
+--- a/xmlimplsrc/org/mozilla/javascript/xmlimpl/QName.java
++++ b/xmlimplsrc/org/mozilla/javascript/xmlimpl/QName.java
+@@ -116,7 +116,7 @@ final class QName extends IdScriptableOb
+ }
+
+ @Override
+- public Object getDefaultValue(Class> hint) {
++ public Object getDefaultValue(Class hint) {
+ return toString();
+ }
+
+--- a/xmlimplsrc/org/mozilla/javascript/xmlimpl/XMLObjectImpl.java
++++ b/xmlimplsrc/org/mozilla/javascript/xmlimpl/XMLObjectImpl.java
+@@ -105,7 +105,7 @@ abstract class XMLObjectImpl extends XML
+ }
+
+ @Override
+- public final Object getDefaultValue(Class> hint) {
++ public final Object getDefaultValue(Class hint) {
+ return this.toString();
+ }
+
diff --git a/rhino.script b/rhino.script
new file mode 100644
index 0000000..02d7769
--- /dev/null
+++ b/rhino.script
@@ -0,0 +1,32 @@
+#!/bin/sh
+#
+# rhino script
+# JPackage Project
+
+# Source functions library
+. /usr/share/java-utils/java-functions
+
+# Source system prefs
+if [ -f /etc/rhino.conf ] ; then
+ . /etc/rhino.conf
+fi
+
+# Source user prefs
+if [ -f $HOME/.rhinorc ] ; then
+ . $HOME/.rhinorc
+fi
+
+# Configuration
+MAIN_CLASS=org.mozilla.javascript.tools.shell.Main
+# Remove xmlbeans until we have it in Fedora
+#BASE_JARS="rhino jline xmlbeans/xbean"
+BASE_JARS="rhino jline/jline jansi"
+
+# Set parameters
+set_jvm
+set_classpath $BASE_JARS
+set_flags $BASE_FLAGS
+set_options $BASE_OPTIONS
+
+# Let's start
+run "$@"
diff --git a/rhino.spec b/rhino.spec
new file mode 100644
index 0000000..a5af5e8
--- /dev/null
+++ b/rhino.spec
@@ -0,0 +1,78 @@
+Name: rhino
+Version: 1.7.7.1
+Release: 7
+Summary: Open-source implementation of JavaScript written entirely in Java
+License: MPLv2.0
+URL: http://www.mozilla.org/rhino/
+Source0: https://github.com/mozilla/rhino/archive/Rhino1_7_7_1_RELEASE.tar.gz
+Source1: http://repo1.maven.org/maven2/org/mozilla/rhino/%{version}/rhino-%{version}.pom
+Source2: %{name}.script
+Patch0: %{name}-build.patch
+Patch1: %{name}-addOrbitManifest.patch
+BuildArch: noarch
+
+BuildRequires: ant, java-devel >= 1:1.6.0.0, sonatype-oss-parent, javapackages-local
+Requires: jline, javapackages-tools
+Provides: %{name}-demo%{?_isa} %{name}-demo
+Obsoletes: %{name}-demo
+Obsoletes: %{name}-javadoc < %{version}-%{release}
+Obsoletes: %{name}-manual < %{version}-%{release}
+
+%description
+Rhino is an open-source implementation of JavaScript written entirely in Java.
+It is typically embedded into Java applications to provide scripting to end users.
+It is embedded in J2SE 6 as the default Java scripting engine.
+
+%package help
+Summary: man files for %{name}
+Requires: man
+
+%description help
+This package includes man files for %{name}.
+
+%prep
+%setup -q -n %{name}-Rhino1_7_7_1_RELEASE
+%patch0 -p1 -b .build
+%patch1 -b .fixManifest
+
+sed -i -e '/^Class-Path:.*$/d' src/manifest
+sed -i -e 's|^implementation.version: Rhino .* release .* \${implementation.date}|implementation.version: Rhino %{version} release %{release} \${implementation.date}|' build.properties
+
+%mvn_alias : rhino:js
+%mvn_file : js %{name}
+
+%build
+ant deepclean jar copy-all -Dno-xmlbeans=1
+%mvn_artifact %{SOURCE1} build/%{name}%{version}/js.jar
+
+cd examples
+export CLASSPATH=../build/%{name}%{version}/js.jar:$(build-classpath xmlbeans/xbean 2>/dev/null)
+%{javac} *.java
+%{jar} cf ../build/%{name}%{version}/%{name}-examples.jar *.class
+cd -
+
+%install
+%mvn_install
+
+install -d $RPM_BUILD_ROOT%{_mandir}/man1/
+install -m 644 man/%{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1
+
+install -d $RPM_BUILD_ROOT%{_bindir}
+install -m 755 %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/%{name}
+
+cp -a build/%{name}%{version}/%{name}-examples.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-examples.jar
+install -d $RPM_BUILD_ROOT%{_datadir}/%{name}
+cp -a examples/* $RPM_BUILD_ROOT%{_datadir}/%{name}
+find $RPM_BUILD_ROOT%{_datadir}/%{name} -name '*.build' -delete
+
+%files -f .mfiles
+%attr(0755,root,root) %{_bindir}/*
+%{_javadir}/*
+%{_datadir}/%{name}
+
+%files help
+%{_mandir}/man*/*
+
+%changelog
+* Wed Dec 4 2019 openEuler Buildteam - 1.7.7.1-7
+- Package init