awslabs / awslabs/aws-lambda-cpp

function deprecation issue when make building aws-sdk-cpp demo

未關閉
#110 0 則留言 2 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
C++
星號
465
分支
98
平均合併
12 小時 47 分鐘
30 天內合併 PR
3

描述

```
[ 36%] Building CXX object aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/ub_core.cpp.o
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp: In constructor ‘Aws::Utils::Crypto::HMACRAIIGuard::HMACRAIIGuard()’:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:281:42: error: ‘HMAC_CTX* HMAC_CTX_new()’ is deprecated [-Werror=deprecated-declarations]
281 | m_ctx = HMAC_CTX_new();
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:32:1: note: declared here
32 | DEPRECATEDIN_3_0(HMAC_CTX *HMAC_CTX_new(void))
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:281:42: error: ‘HMAC_CTX* HMAC_CTX_new()’ is deprecated [-Werror=deprecated-declarations]
281 | m_ctx = HMAC_CTX_new();
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:32:1: note: declared here
32 | DEPRECATEDIN_3_0(HMAC_CTX *HMAC_CTX_new(void))
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp: In destructor ‘Aws::Utils::Crypto::HMACRAIIGuard::~HMACRAIIGuard()’:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:290:40: error: ‘void HMAC_CTX_free(HMAC_CTX*)’ is deprecated [-Werror=deprecated-declarations]
290 | HMAC_CTX_free(m_ctx);
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:34:1: note: declared here
34 | DEPRECATEDIN_3_0(void HMAC_CTX_free(HMAC_CTX *ctx))
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:290:40: error: ‘void HMAC_CTX_free(HMAC_CTX*)’ is deprecated [-Werror=deprecated-declarations]
290 | HMAC_CTX_free(m_ctx);
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:34:1: note: declared here
34 | DEPRECATEDIN_3_0(void HMAC_CTX_free(HMAC_CTX *ctx))
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp: In member function ‘virtual Aws::Utils::Crypto::HashResult Aws::Utils::Crypto::Sha256HMACOpenSSLImpl::Calculate(const ByteBuffer&, const ByteBuffer&)’:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:316:34: error: ‘int HMAC_Init_ex(HMAC_CTX*, const void*, int, const EVP_MD*, ENGINE*)’ is deprecated [-Werror=deprecated-declarations]
316 | NULL);
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:39:1: note: declared here
39 | DEPRECATEDIN_3_0(int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:316:34: error: ‘int HMAC_Init_ex(HMAC_CTX*, const void*, int, const EVP_MD*, ENGINE*)’ is deprecated [-Werror=deprecated-declarations]
316 | NULL);
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:39:1: note: declared here
39 | DEPRECATEDIN_3_0(int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:317:82: error: ‘int HMAC_Update(HMAC_CTX*, const unsigned char*, size_t)’ is deprecated [-Werror=deprecated-declarations]
317 | HMAC_Update(m_ctx, toSign.GetUnderlyingData(), toSign.GetLength());
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:41:1: note: declared here
41 | DEPRECATEDIN_3_0(int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data,
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:317:82: error: ‘int HMAC_Update(HMAC_CTX*, const unsigned char*, size_t)’ is deprecated [-Werror=deprecated-declarations]
317 | HMAC_Update(m_ctx, toSign.GetUnderlyingData(), toSign.GetLength());
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:41:1: note: declared here
41 | DEPRECATEDIN_3_0(int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data,
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:318:70: error: ‘int HMAC_Final(HMAC_CTX*, unsigned char*, unsigned int*)’ is deprecated [-Werror=deprecated-declarations]
318 | HMAC_Final(m_ctx, digest.GetUnderlyingData(), &length);
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:43:1: note: declared here
43 | DEPRECATEDIN_3_0(int HMAC_Final(HMAC_CTX *ctx, unsigned char *md,
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:318:70: error: ‘int HMAC_Final(HMAC_CTX*, unsigned char*, unsigned int*)’ is deprecated [-Werror=deprecated-declarations]
318 | HMAC_Final(m_ctx, digest.GetUnderlyingData(), &length);
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:43:1: note: declared here
43 | DEPRECATEDIN_3_0(int HMAC_Final(HMAC_CTX *ctx, unsigned char *md,
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:323:37: error: ‘int HMAC_CTX_reset(HMAC_CTX*)’ is deprecated [-Werror=deprecated-declarations]
323 | HMAC_CTX_reset(m_ctx);
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:33:1: note: declared here
33 | DEPRECATEDIN_3_0(int HMAC_CTX_reset(HMAC_CTX *ctx))
| ^~~~~~~~~~~~~~~~
In file included from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:323:37: error: ‘int HMAC_CTX_reset(HMAC_CTX*)’ is deprecated [-Werror=deprecated-declarations]
323 | HMAC_CTX_reset(m_ctx);
| ^
In file included from /usr/local/include/openssl/opensslv.h:109,
from /usr/local/include/openssl/macros.h:11,
from /usr/local/include/openssl/opensslconf.h:14,
from /usr/local/include/openssl/macros.h:10,
from /usr/local/include/openssl/e_os2.h:14,
from /usr/local/include/openssl/types.h:19,
from /usr/local/include/openssl/ossl_typ.h:16,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/CryptoImpl.h:12,
from ~~??~~/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp:9,
from ~~??~~/aws-sdk-cpp/build/aws-cpp-sdk-core/ub_core.cpp:46:
/usr/local/include/openssl/hmac.h:33:1: note: declared here
33 | DEPRECATEDIN_3_0(int HMAC_CTX_reset(HMAC_CTX *ctx))
| ^~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/build.make:512: aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/ub_core.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:233: aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
```

I was following the instructions [here](https://github.com/awslabs/aws-lambda-cpp/tree/master/examples/s3)

How can I fix this issue?

貢獻指南

開啟貢獻指南

研究方向

重新執行 demo 建置並檢查 aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp,尤其是 HMACRAIIGuard 和 Sha256HMACOpenSSLImpl。以回報的 OpenSSL 棄用診斷為起點;當建置完成且不再出現這些錯誤時,即表示完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
aws, cmake, cpp
領域
build-system
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
需要釐清
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。