Subject: git-gcrypt 0.7.0 build fails with OpenSSL 3.0
From: Giovanni Biscuolo <[email-masked]>
To: [email-masked]
Date: Mon, 01 May 2023 14:41:15 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

git-crypt 0.7.0 is failing to build with OpenSSL 3.0

--8<---------------cut here---------------start------------->8---

g++ -Wall -pedantic -Wno-long-long -O2 -std=c++11   -c -o crypto-openssl-10.o crypto-openssl-10.cpp
crypto-openssl-10.cpp: In constructor ‘Aes_ecb_encryptor::Aes_ecb_encryptor(const unsigned char*)’:
crypto-openssl-10.cpp:59:32: warning: ‘int AES_set_encrypt_key(const unsigned char*, int, AES_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
   59 |         if (AES_set_encrypt_key(raw_key, KEY_LEN * 8, &(impl->key)) != 0) {
      |             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from crypto-openssl-10.cpp:38:
/gnu/store/69wd3pd1hd3j84xr965jj2fk2qmxn0hl-openssl-3.0.8/include/openssl/aes.h:51:5: note: declared here
   51 | int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
      |     ^~~~~~~~~~~~~~~~~~~
crypto-openssl-10.cpp: In member function ‘void Aes_ecb_encryptor::encrypt(const unsigned char*, unsigned char*)’:
crypto-openssl-10.cpp:74:20: warning: ‘void AES_encrypt(const unsigned char*, unsigned char*, const AES_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declaratio
ns]
   74 |         AES_encrypt(plain, cipher, &(impl->key));
      |         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from crypto-openssl-10.cpp:38:
/gnu/store/69wd3pd1hd3j84xr965jj2fk2qmxn0hl-openssl-3.0.8/include/openssl/aes.h:57:6: note: declared here
   57 | void AES_encrypt(const unsigned char *in, unsigned char *out,
      |      ^~~~~~~~~~~
crypto-openssl-10.cpp: At global scope:
crypto-openssl-10.cpp:78:18: error: field ‘ctx’ has incomplete type ‘HMAC_CTX’ {aka ‘hmac_ctx_st’}
   78 |         HMAC_CTX ctx;
      |                  ^~~
In file included from /gnu/store/69wd3pd1hd3j84xr965jj2fk2qmxn0hl-openssl-3.0.8/include/openssl/evp.h:26,
                 from /gnu/store/69wd3pd1hd3j84xr965jj2fk2qmxn0hl-openssl-3.0.8/include/openssl/hmac.h:21,
                 from crypto-openssl-10.cpp:40:
/gnu/store/69wd3pd1hd3j84xr965jj2fk2qmxn0hl-openssl-3.0.8/include/openssl/types.h:132:16: note: forward declaration of ‘HMAC_CTX’ {aka ‘struct hmac_ctx_st’}
  132 | typedef struct hmac_ctx_st HMAC_CTX;
      |                ^~~~~~~~~~~
crypto-openssl-10.cpp: In destructor ‘Hmac_sha1_state::~Hmac_sha1_state()’:
crypto-openssl-10.cpp:92:9: error: ‘HMAC_cleanup’ was not declared in this scope; did you mean ‘EVP_cleanup’?
   92 |         HMAC_cleanup(&(impl->ctx));
      |         ^~~~~~~~~~~~
      |         EVP_cleanup
make: *** [<builtin>: crypto-openssl-10.o] Error 1
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("ENABLE_MAN=yes") exit-status: 2 term-signal: #f stop-signal: #f>
phase `build' failed after 9.4 seconds
command "make" "ENABLE_MAN=yes" failed with status 2
note: keeping build directory `/tmp/guix-build-git-crypt-0.7.0.drv-0'
builder for `/gnu/store/n16q81snhvc2ikws6pwsysdyxi3shbqp-git-crypt-0.7.0.drv' failed with exit code 1
build of /gnu/store/n16q81snhvc2ikws6pwsysdyxi3shbqp-git-crypt-0.7.0.drv failed
View build log at '/var/log/guix/drvs/n1/6q81snhvc2ikws6pwsysdyxi3shbqp-git-crypt-0.7.0.drv.gz'.
guix build: error: build of `/gnu/store/n16q81snhvc2ikws6pwsysdyxi3shbqp-git-crypt-0.7.0.drv' failed

--8<---------------cut here---------------end--------------->8---

I'm going to investigate if there's a solution.

Happy hacking! Gio'

-- 
Giovanni Biscuolo

Xelera IT Infrastructures