diff --git a/.travis/check-git-clang-format.sh b/.travis/check-git-clang-format.sh
index 8f73c7d..b8d3d1f 100644
--- a/.travis/check-git-clang-format.sh
+++ b/.travis/check-git-clang-format.sh
@@ -1,3 +1,17 @@
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #!/bin/bash
 
  if [ "$TRAVIS_PULL_REQUEST" = "true" ]; then
diff --git a/build.sh b/build.sh
index 8cf85fe..de34bba 100755
--- a/build.sh
+++ b/build.sh
@@ -355,10 +355,13 @@
 
 PackageRocketMQStatic()
 {
-    #packet libevent,jsoncpp,boost,rocketmq,Signature to one librocketmq.a
-    cp -f ${basepath}/libs/signature/lib/libSignature.a ${install_lib_dir}/lib
-    ar -M < ${basepath}/package_rocketmq.mri
-    cp -f librocketmq.a ${install_lib_dir}
+    if test "$(uname)" = "Linux"; then
+        echo "package static library."
+        #packet libevent,jsoncpp,boost,rocketmq,Signature to one librocketmq.a
+        cp -f ${basepath}/libs/signature/lib/libSignature.a ${install_lib_dir}/lib
+        ar -M < ${basepath}/package_rocketmq.mri
+        cp -f librocketmq.a ${install_lib_dir}
+    fi
 }
 
 PrintParams
diff --git a/distribution/LICENSE-BIN b/distribution/LICENSE-BIN
index b9301eb..cb8df95 100644
--- a/distribution/LICENSE-BIN
+++ b/distribution/LICENSE-BIN
@@ -201,7 +201,7 @@
    limitations under the License.
 
  ------
- This product has a bundle disruptor--, which is available under its own License.
+ This product has a bundle disruptor--, which is available under BSD License.
  The source code of disruptor-- can be found at https://github.com/fsaintjacques/disruptor--.
 
  Copyright (c) 2011, François Saint-Jacques
diff --git a/include/BatchMessage.h b/include/BatchMessage.h
index 16ec515..9399506 100644
--- a/include/BatchMessage.h
+++ b/include/BatchMessage.h
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 #ifndef __BATCHMESSAGE_H__
 #define __BATCHMESSAGE_H__
 #include "MQMessage.h"
diff --git a/src/message/BatchMessage.cpp b/src/message/BatchMessage.cpp
index ea8849f..89662bc 100644
--- a/src/message/BatchMessage.cpp
+++ b/src/message/BatchMessage.cpp
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 #include "BatchMessage.h"
 #include "MQDecoder.h"
 #include "StringIdMaker.h"
