Hello, I am trying to compile Guacamole Server 1.4.0 on Linux Mint 21 and though I am slowly working my way through a lot of the bugs and questions I previously had, I have hit a roadblock here with OpenSSL 3.0 deprecated errors. In order to provide you the context, I have uploaded the terminal script for the /$ make install: https://pastebin.com/Qhh7gWfq In an effort to try to resolve the issue myself, or at the very least acquire some knowledge as to what the error is and how I might correct it, I consulted ChatGPT and received a response that is attached to this email as a .txt file. In an effort to respect the privacy and security of the list, I have also upload that .txt file here: https://pastebin.com/UahxSzn6
For the security and privacy conscious, the full script is below. My
question, given that ChatGPT explained what is going on and how to fix it,
is what precautions I should take and whether or not I should follow the
advice of ChatGPT which is either suggesting I compile in OpenSSL 2.0 or
replace the deprecated functions. Any help on expanding the insight
provided would be greatly appreciated.
*****@********:~/Downloads/guacamole-server-1.4.0$ autoreconf -fi
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:29: warning: The macro `AC_CONFIG_HEADER' is obsolete.
configure.ac:29: You should run autoupdate.
./lib/autoconf/status.m4:719: AC_CONFIG_HEADER is expanded from...
configure.ac:29: the top level
configure.ac:37: warning: The macro `AC_PROG_CC_C99' is obsolete.
configure.ac:37: You should run autoupdate.
./lib/autoconf/c.m4:1659: AC_PROG_CC_C99 is expanded from...
configure.ac:37: the top level
configure.ac:38: warning: The macro `AC_PROG_LIBTOOL' is obsolete.
configure.ac:38: You should run autoupdate.
m4/libtool.m4:99: AC_PROG_LIBTOOL is expanded from...
configure.ac:38: the top level
configure.ac:27: installing 'build-aux/compile'
configure.ac:23: installing 'build-aux/missing'
src/common-ssh/Makefile.am: installing 'build-aux/depcomp'
*****@********:~/Downloads/guacamole-server-1.4.0$ ./configure
--with-init-dir=/etc/init.d
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to
x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain
format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared
libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... no
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for fcntl.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for sys/socket.h... yes
checking for time.h... yes
checking for sys/time.h... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking for cairo/cairo.h... yes
checking for pngstruct.h... no
checking for gcc options needed to detect all undeclared functions... none
needed
checking for cos in -lm... yes
checking for png_write_png in -lpng... yes
checking for jpeg_start_compress in -ljpeg... yes
checking for cairo_create in -lcairo... yes
checking for pthread_create in -lpthread... yes
checking for dlopen in -ldl... yes
checking for uuid_generate in -luuid... yes
checking for CU_run_test in -lcunit... no
checking for clock_gettime... yes
checking for gettimeofday... yes
checking for memmove... yes
checking for memset... yes
checking for select... yes
checking for strdup... yes
checking for nanosleep... yes
checking whether png_get_io_ptr is declared... yes
checking whether cairo_format_stride_for_width is declared... yes
checking whether poll is declared... yes
checking whether strlcpy is declared... no
checking whether strlcat is declared... no
checking for size_t... yes
checking for ssize_t... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for libavcodec... yes
checking for libavformat... yes
checking for libavutil... yes
checking for libswscale... yes
checking for openssl/ssl.h... yes
checking for SSL_CTX_new in -lssl... yes
checking whether DSA_SIG_get0 is declared... yes
checking whether DSA_get0_pqg is declared... yes
checking whether DSA_get0_key is declared... yes
checking whether RSA_get0_key is declared... yes
checking whether libssl requires threading callbacks... no
checking for main in -lwsock32... no
checking for vorbis/vorbisenc.h... yes
checking for ogg_stream_init in -logg... yes
checking for vorbis_block_init in -lvorbis... yes
checking for vorbis_encode_init in -lvorbisenc... yes
checking for pa_context_new in -lpulse... yes
checking for pango... yes
checking for pangocairo... yes
checking for rfbInitClient in -lvncclient... yes
checking whether LIBVNCSERVER_WITH_CLIENT_GCRYPT is declared... no
checking for rfbClient.destHost... yes
checking for rfbClient.destPort... yes
checking whether listenForIncomingConnectionsNoFork is declared... yes
checking for rfbClient.LockWriteToTLS... yes
checking for rfbClient.UnlockWriteToTLS... yes
checking for rfbClient.GetCredential... yes
checking for freerdp2 freerdp-client2 winpr2... yes
checking whether FreeRDPConvertColor is declared... yes
checking whether FreeRDP appears to be a development version... checking
how to run the C preprocessor... gcc -E
no
checking whether Bitmap_Free() frees the rdpBitmap and its image data... no
checking whether pVirtualChannelWriteEx() frees the wStream upon
completion... no
checking whether rdpGlyph callbacks accept INT32 integer parameters... yes
checking whether CLIPRDR callbacks require const for their final
parameter... yes
checking whether RAIL callbacks require const for their final parameter...
yes
checking for rdpSettings.AllowUnanouncedOrdersFromServer... yes
checking for freerdp.VerifyCertificateEx... yes
checking for libssh2_session_init_ex in -lssh2... yes
checking for gcry_control in -lssh2... no
checking for telnet_init in -ltelnet... yes
checking for webp/encode.h... yes
checking for WebPEncode in -lwebp... yes
checking for lws_create_context in -lwebsockets... yes
checking whether LWS_CALLBACK_CLIENT_CLOSED is declared... yes
checking whether LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT is declared... yes
checking whether LCCSCF_USE_SSL is declared... yes
checking whether lws_callback_http_dummy is declared... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Doxyfile
config.status: creating src/common/Makefile
config.status: creating src/common/tests/Makefile
config.status: creating src/common-ssh/Makefile
config.status: creating src/common-ssh/tests/Makefile
config.status: creating src/terminal/Makefile
config.status: creating src/libguac/Makefile
config.status: creating src/libguac/tests/Makefile
config.status: creating src/guacd/Makefile
config.status: creating src/guacd/man/guacd.8
config.status: creating src/guacd/man/guacd.conf.5
config.status: creating src/guacenc/Makefile
config.status: creating src/guacenc/man/guacenc.1
config.status: creating src/guaclog/Makefile
config.status: creating src/guaclog/man/guaclog.1
config.status: creating src/pulse/Makefile
config.status: creating src/protocols/kubernetes/Makefile
config.status: creating src/protocols/kubernetes/tests/Makefile
config.status: creating src/protocols/rdp/Makefile
config.status: creating src/protocols/rdp/tests/Makefile
config.status: creating src/protocols/ssh/Makefile
config.status: creating src/protocols/telnet/Makefile
config.status: creating src/protocols/vnc/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
------------------------------------------------
guacamole-server version 1.4.0
------------------------------------------------
Library status:
freerdp2 ............ yes
pango ............... yes
libavcodec .......... yes
libavformat.......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ yes
libwebsockets ....... yes
libwebp ............. yes
wsock32 ............. no
Protocol support:
Kubernetes .... yes
RDP ........... yes
SSH ........... yes
Telnet ........ yes
VNC ........... yes
Services / tools:
guacd ...... yes
guacenc .... yes
guaclog .... yes
FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
Init scripts: /etc/init.d
Systemd units: no
Type "make" to compile guacamole-server.
*****@********:~/Downloads/guacamole-server-1.4.0$ make
make all-recursive
make[1]: Entering directory '/home/vrgyl/Downloads/guacamole-server-1.4.0'
Making all in src/libguac
make[2]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
Making all in .
make[3]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
CC libguac_la-argv.lo
CC libguac_la-audio.lo
CC libguac_la-client.lo
CC libguac_la-encode-jpeg.lo
CC libguac_la-encode-png.lo
CC libguac_la-error.lo
CC libguac_la-hash.lo
CC libguac_la-id.lo
CC libguac_la-palette.lo
CC libguac_la-parser.lo
CC libguac_la-pool.lo
CC libguac_la-protocol.lo
CC libguac_la-raw_encoder.lo
CC libguac_la-socket.lo
CC libguac_la-socket-broadcast.lo
CC libguac_la-socket-fd.lo
CC libguac_la-socket-nest.lo
CC libguac_la-socket-tee.lo
CC libguac_la-string.lo
CC libguac_la-timestamp.lo
CC libguac_la-unicode.lo
CC libguac_la-user.lo
CC libguac_la-user-handlers.lo
CC libguac_la-user-handshake.lo
CC libguac_la-wait-fd.lo
CC libguac_la-wol.lo
CC libguac_la-encode-webp.lo
CC libguac_la-socket-ssl.lo
CCLD libguac.la
make[3]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
Making all in tests
make[3]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac/tests'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac/tests'
make[2]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
Making all in src/common
make[2]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common'
Making all in .
make[3]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common'
CC libguac_common_la-io.lo
CC libguac_common_la-blank_cursor.lo
CC libguac_common_la-clipboard.lo
CC libguac_common_la-cursor.lo
CC libguac_common_la-display.lo
CC libguac_common_la-dot_cursor.lo
CC libguac_common_la-ibar_cursor.lo
CC libguac_common_la-iconv.lo
CC libguac_common_la-json.lo
CC libguac_common_la-list.lo
CC libguac_common_la-pointer_cursor.lo
CC libguac_common_la-recording.lo
CC libguac_common_la-rect.lo
CC libguac_common_la-string.lo
CC libguac_common_la-surface.lo
CCLD libguac_common.la
make[3]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common'
Making all in tests
make[3]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common/tests'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common/tests'
make[2]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common'
Making all in src/common-ssh
make[2]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common-ssh'
Making all in .
make[3]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common-ssh'
CC libguac_common_ssh_la-buffer.lo
CC libguac_common_ssh_la-dsa-compat.lo
CC libguac_common_ssh_la-rsa-compat.lo
CC libguac_common_ssh_la-sftp.lo
CC libguac_common_ssh_la-ssh.lo
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
make[3]: *** [Makefile:591: libguac_common_ssh_la-key.lo] Error 1
make[3]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common-ssh'
make[2]: *** [Makefile:617: all-recursive] Error 1
make[2]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common-ssh'
make[1]: *** [Makefile:538: all-recursive] Error 1
make[1]: Leaving directory '/home/vrgyl/Downloads/guacamole-server-1.4.0'
make: *** [Makefile:460: all] Error 2
*****@********:~/Downloads/guacamole-server-1.4.0$ make install
Making install in src/libguac
make[1]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
Making install in .
make[2]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
make[3]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
/usr/bin/mkdir -p '/usr/local/lib'
/bin/bash ../../libtool --mode=install /usr/bin/install -c libguac.la
'/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libguac.so.20.0.0
/usr/local/lib/libguac.so.20.0.0
/usr/bin/install: cannot create regular file
'/usr/local/lib/libguac.so.20.0.0': Permission denied
make[3]: *** [Makefile:615: install-libLTLIBRARIES] Error 1
make[3]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
make[2]: *** [Makefile:1117: install-am] Error 2
make[2]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
make[1]: *** [Makefile:954: install-recursive] Error 1
make[1]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
make: *** [Makefile:538: install-recursive] Error 1
*****@********:~/Downloads/guacamole-server-1.4.0$ sudo make install
[sudo] password for vrgyl:
Making install in src/libguac
make[1]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
Making install in .
make[2]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
make[3]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
/usr/bin/mkdir -p '/usr/local/lib'
/bin/bash ../../libtool --mode=install /usr/bin/install -c libguac.la
'/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libguac.so.20.0.0
/usr/local/lib/libguac.so.20.0.0
libtool: install: (cd /usr/local/lib && { ln -s -f libguac.so.20.0.0
libguac.so.20 || { rm -f libguac.so.20 && ln -s libguac.so.20.0.0
libguac.so.20; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libguac.so.20.0.0
libguac.so || { rm -f libguac.so && ln -s libguac.so.20.0.0 libguac.so; };
})
libtool: install: /usr/bin/install -c .libs/libguac.lai /usr/local/lib/
libguac.la
libtool: install: /usr/bin/install -c .libs/libguac.a
/usr/local/lib/libguac.a
libtool: install: chmod 644 /usr/local/lib/libguac.a
libtool: install: ranlib /usr/local/lib/libguac.a
libtool: finish:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin"
ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/mkdir -p '/usr/local/include/guacamole'
/usr/bin/install -c -m 644 guacamole/argv.h guacamole/argv-constants.h
guacamole/argv-fntypes.h guacamole/audio.h guacamole/audio-fntypes.h
guacamole/audio-types.h guacamole/client-constants.h guacamole/client.h
guacamole/client-fntypes.h guacamole/client-types.h guacamole/error.h
guacamole/error-types.h guacamole/hash.h guacamole/layer.h
guacamole/layer-types.h guacamole/object.h guacamole/object-types.h
guacamole/parser-constants.h guacamole/parser.h guacamole/parser-types.h
guacamole/plugin-constants.h guacamole/plugin.h guacamole/pool.h
guacamole/pool-types.h guacamole/protocol.h guacamole/protocol-constants.h
guacamole/protocol-types.h guacamole/socket-constants.h guacamole/socket.h
guacamole/socket-fntypes.h guacamole/socket-types.h guacamole/stream.h
guacamole/stream-types.h guacamole/string.h guacamole/timestamp.h
guacamole/timestamp-types.h guacamole/unicode.h guacamole/user.h
guacamole/user-constants.h guacamole/user-fntypes.h
'/usr/local/include/guacamole'
/usr/bin/install -c -m 644 guacamole/user-types.h guacamole/wol.h
guacamole/wol-constants.h guacamole/socket-ssl.h
'/usr/local/include/guacamole'
make[3]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
make[2]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
Making install in tests
make[2]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac/tests'
make[3]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac/tests'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac/tests'
make[2]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac/tests'
make[1]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/libguac'
Making install in src/common
make[1]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common'
Making install in .
make[2]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common'
make[3]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common'
make[2]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common'
Making install in tests
make[2]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common/tests'
make[3]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common/tests'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common/tests'
make[2]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common/tests'
make[1]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common'
Making install in src/common-ssh
make[1]: Entering directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common-ssh'
Making install in .
make[2]: Entering directory
'/home/vrgyl/Downloads/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
make[2]: *** [Makefile:591: libguac_common_ssh_la-key.lo] Error 1
make[2]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common-ssh'
make[1]: *** [Makefile:617: install-recursive] Error 1
make[1]: Leaving directory
'/home/vrgyl/Downloads/guacamole-server-1.4.0/src/common-ssh'
make: *** [Makefile:538: install-recursive] Error 1
*****@********:~/Downloads/guacamole-server-1.4.0$ ldconfig
/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~:
Permission denied
*****@********:~/Downloads/guacamole-server-1.4.0$ sudo ldconfig
*****@********:~/Downloads/guacamole-server-1.4.0$
It looks like you are trying to compile the Guacamole server with OpenSSL
3.0 and you are encountering errors related to deprecated functions.
One potential solution would be to try compiling with OpenSSL 2.0 instead,
as the deprecated functions might still be available in that version. You
can check your current OpenSSL version by running openssl version.
Alternatively, you could try updating the code in the key.c file to use the
recommended replacements for the deprecated functions. For example,
PEM_read_bio_RSAPrivateKey and PEM_read_bio_DSAPrivateKey have been
replaced with PEM_read_bio_PrivateKey, and RSA_get0_key has been replaced
with RSA_get0_key.
I recommend consulting the OpenSSL documentation or asking for help in a
forum or on a mailing list specifically for the Guacamole project for
further assistance with this issue.
Kazin Whitewind
What steps do I take in updating the code in the key.c file to use the
recommended replacements for the deprecated functions?
To update the code in key.c to use the recommended replacements for the
deprecated functions:
Locate each instance of a deprecated function in the key.c file.
Replace the deprecated function with the recommended alternative.
Update the arguments for the new function to match its prototype.
Here is an example of how you could replace a deprecated function in the
key.c file:
Copy code
- RSA* rsa_key = PEM_read_bio_RSAPrivateKey(key_bio, NULL, NULL,
passphrase);
+ EVP_PKEY *pkey = NULL;
+ PEM_read_bio_PrivateKey(key_bio, &pkey, NULL, passphrase);
+ RSA *rsa_key = EVP_PKEY_get1_RSA(pkey);
In this example, the deprecated function PEM_read_bio_RSAPrivateKey is
replaced with PEM_read_bio_PrivateKey, and the resulting EVP_PKEY is then
converted to an RSA key using EVP_PKEY_get1_RSA.
I recommend thoroughly testing your changes before deploying them in a
production environment, as modifying the code in this way may introduce new
errors or issues. If you have any problems or questions while updating the
code, you can seek help in a forum or on a mailing list specifically for
the Guacamole project.
It looks like you are trying to compile the Guacamole server with OpenSSL 3.0 and you are encountering errors related to deprecated functions. One potential solution would be to try compiling with OpenSSL 2.0 instead, as the deprecated functions might still be available in that version. You can check your current OpenSSL version by running openssl version. Alternatively, you could try updating the code in the key.c file to use the recommended replacements for the deprecated functions. For example, PEM_read_bio_RSAPrivateKey and PEM_read_bio_DSAPrivateKey have been replaced with PEM_read_bio_PrivateKey, and RSA_get0_key has been replaced with RSA_get0_key. I recommend consulting the OpenSSL documentation or asking for help in a forum or on a mailing list specifically for the Guacamole project for further assistance with this issue. Kazin Whitewind What steps do I take in updating the code in the key.c file to use the recommended replacements for the deprecated functions? To update the code in key.c to use the recommended replacements for the deprecated functions: Locate each instance of a deprecated function in the key.c file. Replace the deprecated function with the recommended alternative. Update the arguments for the new function to match its prototype. Here is an example of how you could replace a deprecated function in the key.c file: Copy code - RSA* rsa_key = PEM_read_bio_RSAPrivateKey(key_bio, NULL, NULL, passphrase); + EVP_PKEY *pkey = NULL; + PEM_read_bio_PrivateKey(key_bio, &pkey, NULL, passphrase); + RSA *rsa_key = EVP_PKEY_get1_RSA(pkey); In this example, the deprecated function PEM_read_bio_RSAPrivateKey is replaced with PEM_read_bio_PrivateKey, and the resulting EVP_PKEY is then converted to an RSA key using EVP_PKEY_get1_RSA. I recommend thoroughly testing your changes before deploying them in a production environment, as modifying the code in this way may introduce new errors or issues. If you have any problems or questions while updating the code, you can seek help in a forum or on a mailing list specifically for the Guacamole project.
OpenSSL 3.0 Deprecated Function Errors
Description: Binary data
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
