MysticRyuujin / guac-install

Script for installing Guacamole on Ubuntu
988 stars 272 forks source link

Fresh Install on Ubuntu 22.04 LTS fails #224

Open Metzgermeister81 opened 2 years ago

Metzgermeister81 commented 2 years ago

I tried to install guacamole aon a fresh Ubuntu 22.04 VM There is OpenSSL 3.0.x installed while on a 20.04 LTS there is OpenSSL 1.1.1 --- Error here --- Making install in src/common-ssh make[1]: Entering directory '/srv/guacamole-server-1.4.0/src/common-ssh' Making install in . make[2]: Entering directory '/srv/guacamole-server-1.4.0/src/common-ssh' CC libguac_common_ssh_la-key.lo key.c: In function ‘guac_common_ssh_key_alloc’: key.c:63:9: error: ‘PEM_read_bio_RSAPrivateKey’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 63 | rsa_key = PEM_read_bio_RSAPrivateKey(key_bio, NULL, NULL, passphrase); | ^~~ In file included from key.c:33: /usr/include/openssl/pem.h:447:1: note: declared here 447 | DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, RSAPrivateKey, RSA) | ^~~~~~ key.c:79:9: error: ‘RSA_get0_key’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 79 | RSA_get0_key(rsa_key, &key_n, &key_e, NULL); | ^~~~ In file included from common-ssh/rsa-compat.h:26, from key.c:25: /usr/include/openssl/rsa.h:217:28: note: declared here 217 | OSSL_DEPRECATEDIN_3_0 void RSA_get0_key(const RSA r, | ^~~~ key.c:105:9: error: ‘PEM_read_bio_DSAPrivateKey’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 105 | dsa_key = PEM_read_bio_DSAPrivateKey(key_bio, NULL, NULL, passphrase); | ^~~ In file included from key.c:33: /usr/include/openssl/pem.h:453:1: note: declared here 453 | DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, DSAPrivateKey, DSA) | ^~~~~~ key.c:121:9: error: ‘DSA_get0_pqg’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 121 | DSA_get0_pqg(dsa_key, &key_p, &key_q, &key_g); | ^~~~ In file included from common-ssh/dsa-compat.h:26, from key.c:23: /usr/include/openssl/dsa.h:201:28: note: declared here 201 | OSSL_DEPRECATEDIN_3_0 void DSA_get0_pqg(const DSA d, const BIGNUM *p, | ^~~~ key.c:122:9: error: ‘DSA_get0_key’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 122 | DSA_get0_key(dsa_key, &pub_key, NULL); | ^~~~ In file included from common-ssh/dsa-compat.h:26, from key.c:23: /usr/include/openssl/dsa.h:204:28: note: declared here 204 | OSSL_DEPRECATEDIN_3_0 void DSA_get0_key(const DSA d, const BIGNUM *pub_key, | ^~~~ key.c: In function ‘guac_common_ssh_key_free’: key.c:164:9: error: ‘RSA_free’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 164 | RSA_free(key->rsa); | ^~~~ In file included from common-ssh/rsa-compat.h:26, from key.c:25: /usr/include/openssl/rsa.h:293:28: note: declared here 293 | OSSL_DEPRECATEDIN_3_0 void RSA_free(RSA r); | ^~~~ key.c:166:9: error: ‘DSA_free’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 166 | DSA_free(key->dsa); | ^~~~ In file included from common-ssh/dsa-compat.h:26, from key.c:23: /usr/include/openssl/dsa.h:127:28: note: declared here 127 | OSSL_DEPRECATEDIN_3_0 void DSA_free(DSA r); | ^~~~ key.c: In function ‘guac_common_ssh_key_sign’: key.c:202:13: error: ‘RSA_sign’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 202 | if (RSA_sign(NID_sha1, digest, dlen, sig, &len, key->rsa) == 1) | ^~ In file included from common-ssh/rsa-compat.h:26, from key.c:25: /usr/include/openssl/rsa.h:348:27: note: declared here 348 | OSSL_DEPRECATEDIN_3_0 int RSA_sign(int type, const unsigned char m, | ^~~~ key.c:208:13: error: ‘DSA_do_sign’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 208 | DSA_SIG dsa_sig = DSA_do_sign(digest, dlen, key->dsa); | ^~~ In file included from common-ssh/dsa-compat.h:26, from key.c:23: /usr/include/openssl/dsa.h:113:32: note: declared here 113 | OSSL_DEPRECATEDIN_3_0 DSA_SIG DSA_do_sign(const unsigned char *dgst, int dlen, | ^~~ cc1: all warnings being treated as errors --- Error END ---

Any advises?

TiggBloomz commented 2 years ago

Can confirm I'm getting the same issues - using the script and installing manually using "make"

phidauex commented 2 years ago

This looks like the problem I had recently when updating my install to Jammy. The issue appears to be related to Jammy moving to OpenSSL 3.0, leaving behind some features needed by guac. I was able to work around it by manually installing libssl1.1 from the Lubuntu distribution:

wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1l-1ubuntu1.2_amd64.deb dpkg -i libssl1.1_1.1.1l-1ubuntu1.2_amd64.deb

This isn't really a long term solution, but I don't think this is something that the install script can fix until Guacamole updates to use libssl3.

cdv-tbh commented 2 years ago

Has there been any other solution for this? The package you mention is no longer available and I'm not sure what alternative one may work

phidauex commented 2 years ago

Here is another method to manually install openSSL 1.1 by building from source. I haven't tested it, and while it will probably work, it may confuse other installations that are looking for openSSL 3.0.

wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz -P ~
sudo tar -xzf openssl-1.1.1l.tar.gz
cd ~/openssl-1.1.1l
./config
make
sudo make install
sudo cp /usr/local/bin/openssl /usr/bin
sudo ldconfig

From: https://computingforgeeks.com/install-guacamole-remote-desktop-on-ubuntu-jammy-jellyfish/

wutMax commented 1 year ago

If you compile from the git files rather than the archive with tar.gz it should work fine.