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

オープン
#110 コメント 0 件 リアクション 2 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
aws, cmake, cpp
領域
build-system

調査の方向性

デモビルドを再現し、aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp、特に HMACRAIIGuard と Sha256HMACOpenSSLImpl を調査してください。報告されている OpenSSL の非推奨診断を出発点として使用してください。これらのエラーなしでビルドが完了すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

[ 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

How can I fix this issue?

主要言語
C++
スター
465
フォーク
98
平均マージ
1時間 16分
マージ済み PR(30日)
2

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

awslabs/aws-lambda-cpp のほかの issue

awslabs/aws-lambda-cpp の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。