diff --git a/Modify-JAVA_OPTS-to-fix-startup-failure.patch b/Modify-JAVA_OPTS-to-fix-startup-failure.patch
new file mode 100644
index 0000000000000000000000000000000000000000..02986ea409316b37651c6746025dac3ffed9f8eb
--- /dev/null
+++ b/Modify-JAVA_OPTS-to-fix-startup-failure.patch
@@ -0,0 +1,25 @@
+From 4d8355622e5eed7dd8b90246bf50e937c0b43923 Mon Sep 17 00:00:00 2001
+From: hht8 <huanghaitao12138@163.com>
+Date: Mon, 19 Jul 2021 11:35:38 +0800
+Subject: [PATCH] Modified the stack size in JAVA_OPTS and remove two useless options
+
+---
+ deployer/src/main/bin/startup.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/deployer/src/main/bin/startup.sh b/deployer/src/main/bin/startup.sh
+index 7624349..61daed8 100644
+--- a/deployer/src/main/bin/startup.sh
++++ b/deployer/src/main/bin/startup.sh
+@@ -81,7 +81,7 @@ esac
+ 
+ str=`file -L $JAVA | grep 64-bit`
+ if [ -n "$str" ]; then
+-	JAVA_OPTS="-server -Xms2048m -Xmx3072m -Xmn1024m -XX:SurvivorRatio=2 -XX:PermSize=96m -XX:MaxPermSize=256m -Xss256k -XX:-UseAdaptiveSizePolicy -XX:MaxTenuringThreshold=15 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError"
++	JAVA_OPTS="-server -Xms2048m -Xmx3072m -Xmn1024m -XX:SurvivorRatio=2 -XX:PermSize=96m -XX:MaxPermSize=256m -Xss512k -XX:-UseAdaptiveSizePolicy -XX:MaxTenuringThreshold=15 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError"
+ else
+ 	JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:MaxPermSize=128m "
+ fi
+-- 
+2.30.0
+
diff --git a/canal-1.1.5.tar.gz b/canal-1.1.5.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..d403f3fca4ed64da78abc2ab82d0f0087a1c8f4f
Binary files /dev/null and b/canal-1.1.5.tar.gz differ
diff --git a/canal.spec b/canal.spec
new file mode 100644
index 0000000000000000000000000000000000000000..40448ee61abfbb84649e9a921cc5baffa4fb6206
--- /dev/null
+++ b/canal.spec
@@ -0,0 +1,50 @@
+Name:                canal
+Version:             1.1.5
+Release:             1
+Summary:             MySQL Binlog Incremental Subscription & Consuming Components
+License:             ASL 2.0
+URL:                 https://github.com/alibaba/canal
+Source0:             https://github.com/alibaba/canal/archive/refs/tags/canal-1.1.5.tar.gz
+Patch0:              Modify-JAVA_OPTS-to-fix-startup-failure.patch
+BuildRequires:       maven java
+Requires:            java
+BuildArch:           noarch
+%description
+MySQL Binlog Incremental Subscription & Consuming Components
+
+%package javadoc
+Summary:             Javadoc for %{name}
+%description javadoc
+This package contains javadoc for %{name}.
+
+%prep
+%autosetup -n canal-canal-%{version} -p1
+find -name "*.jar" -delete
+find -name "*.class" -delete
+
+%build
+mvn package
+
+%install
+install -d %{buildroot}%{_datadir}/canal
+cp -r deployer/target/canal/bin %{buildroot}%{_datadir}/canal
+cp -r deployer/target/canal/conf %{buildroot}%{_datadir}/canal
+cp -r deployer/target/canal/lib %{buildroot}%{_datadir}/canal
+cp -r deployer/target/canal/logs %{buildroot}%{_datadir}/canal
+install -d %{buildroot}%{_javadir}
+find . -name "*.jar" | cp --parents `xargs` %{buildroot}%{_javadir}
+install -d %{buildroot}%{_datadir}/canal/javadoc
+find . -name "*.xml" | cp --parents `xargs` %{buildroot}%{_datadir}/canal/javadoc
+
+%files
+%license LICENSE.txt
+%{_datadir}/canal/{bin,lib,conf,logs}
+%{_javadir}
+
+%files javadoc
+%doc README.md
+%{_datadir}/canal/javadoc
+
+%changelog
+* Mon Jul 19 2021 huanghaitao <huanghaitao8@huawei.com> - 1.1.5-1
+- package init
diff --git a/canal.yaml b/canal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..429f41b433f7b1c14d8ecb80e82be71a9fe10a97
--- /dev/null
+++ b/canal.yaml
@@ -0,0 +1,4 @@
+version_control: github
+src_repo: alibaba/canal
+tag_prefix: "canal-"
+separator: "."