wuxiaobai created GUACAMOLE-1945:
------------------------------------
Summary: Changed OpenSSL to build using source code
Key: GUACAMOLE-1945
URL: https://issues.apache.org/jira/browse/GUACAMOLE-1945
Project: Guacamole
Issue Type: Bug
Components: guacamole-server
Reporter: wuxiaobai
Build OpenSSL from source code to adapt to newer operating systems.
{code:java}
diff --git a/Dockerfile b/Dockerfile
index 5f1e824c..6cea233e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -22,9 +22,7 @@
# # The Alpine Linux image that should be used as the basis for the guacd image
-# NOTE: Using 3.18 because the required openssl1.1-compat-dev package was
-# removed in more recent versions.
-ARG ALPINE_BASE_IMAGE=3.18
+ARG ALPINE_BASE_IMAGE=latest
FROM alpine:${ALPINE_BASE_IMAGE} AS builder # Install build dependencies
@@ -42,7 +40,6 @@ RUN apk add --no-cache \
libtool \
libwebp-dev \
make \
- openssl1.1-compat-dev \
pango-dev \
pulseaudio-dev \
util-linux-dev
@@ -64,6 +61,7 @@ ARG PREFIX_DIR=/opt/guacamole
# library (these can be overridden at build time if a specific version is
# needed)
#
+ARG WITH_OPENSSL='OpenSSL_1(\_\d+\w*)+'
ARG WITH_FREERDP='2(\.\d+)+'
ARG WITH_LIBSSH2='libssh2-\d+(\.\d+)+'
ARG WITH_LIBTELNET='\d+(\.\d+)+'
@@ -76,6 +74,8 @@ ARG WITH_LIBWEBSOCKETS='v\d+(\.\d+)+'
# options are needed)
#+ARG OPENSSL_OPTS=""
+
ARG FREERDP_OPTS="\
-DBUILTIN_CHANNELS=OFF \
-DCHANNEL_URBDRC=OFF \
@@ -101,7 +101,6 @@ ARG FREERDP_OPTS="\
-DWITH_SERVER_INTERFACE=OFF \
-DWITH_SHADOW_MAC=OFF \
-DWITH_SHADOW_X11=OFF \
- -DWITH_SSE2=ON \
-DWITH_WAYLAND=OFF \
-DWITH_X11=OFF \
-DWITH_X264=OFF \
diff --git a/src/guacd-docker/bin/build-all.sh
b/src/guacd-docker/bin/build-all.sh
index b8c33b8f..a559babb 100755
--- a/src/guacd-docker/bin/build-all.sh
+++ b/src/guacd-docker/bin/build-all.sh
@@ -28,7 +28,7 @@
# Pre-populate build control variables such that the custom build prefix is
# used for C headers, locating libraries, etc.
export CFLAGS="-I${PREFIX_DIR}/include"
-export LDFLAGS="-L${PREFIX_DIR}/lib"
+export LDFLAGS="-Wl,-rpath,${PREFIX_DIR}/lib -L${PREFIX_DIR}/lib"
export PKG_CONFIG_PATH="${PREFIX_DIR}/lib/pkgconfig" # Ensure thread stack
size will be 8 MB (glibc's default on Linux) rather than
@@ -85,6 +85,8 @@ install_from_git() {
# used by the library being built
if [ -e CMakeLists.txt ]; then
cmake -DCMAKE_INSTALL_PREFIX:PATH="$PREFIX_DIR" "$@" .
+ elif [ -e config ]; then
+ ./config --prefix="$PREFIX_DIR" "$@"
else
[ -e configure ] || autoreconf -fi
./configure --prefix="$PREFIX_DIR" "$@"
@@ -103,11 +105,11 @@ export BUILD_ARCHITECTURE="$(arch)" # Determine
architecture building on
echo "Build architecture: $BUILD_ARCHITECTURE" case $BUILD_ARCHITECTURE in
- armv6l|armv7l|aarch64)
- export FREERDP_OPTS_OVERRIDES="-DWITH_SSE2=OFF" # Disable SSE2 on ARM
+ x86_64)
+ export FREERDP_OPTS_OVERRIDES="-DWITH_SSE2=ON" # Enable SSE2 on x86_64
;;
*)
- export FREERDP_OPTS_OVERRIDES=""
+ export FREERDP_OPTS_OVERRIDES="-DWITH_SSE2=OFF"
;;
esac@@ -115,6 +117,7 @@ esac
# Build and install core protocol library dependencies
#+install_from_git "https://github.com/openssl/openssl" "$WITH_OPENSSL"
$OPENSSL_OPTS
install_from_git "https://github.com/FreeRDP/FreeRDP" "$WITH_FREERDP"
$FREERDP_OPTS $FREERDP_OPTS_OVERRIDES
install_from_git "https://github.com/libssh2/libssh2" "$WITH_LIBSSH2"
$LIBSSH2_OPTS
install_from_git "https://github.com/seanmiddleditch/libtelnet"
"$WITH_LIBTELNET" $LIBTELNET_OPTS{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)