[ 
https://issues.apache.org/jira/browse/GUACAMOLE-1945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17838456#comment-17838456
 ] 

wuxiaobai edited comment on GUACAMOLE-1945 at 4/18/24 5:12 AM:
---------------------------------------------------------------

Of course,

Due to the lack of support for more architectures in guacd, I maintain a 
multi-architecture code base based on the debian:bookworm-slim image, including 
amd64 arm64 ppc64le s390x.

 

In newer operating systems, the default openssl version is 3.0, and the vnc 
feature will not be available. In order to complete the build in newer 
operating systems, this PR is submitted.

 
 * [https://hub.docker.com/r/jumpserver/guacd/tags]
 * 
https://github.com/wojiushixiaobai/docker-library-loong64/blob/master/guacamole-server/1.5.5/slim-bookworm/Dockerfile


was (Author: qq296015668):
Of course,


Due to the lack of support for more architectures in guacd, I maintain a 
multi-architecture code base based on the debian:bookworm-slim image, including 
amd64 arm64 ppc64le s390x.


In newer operating systems, the default openssl version is 3.0, and the vnc 
feature will not be available. In order to complete the build in newer 
operating systems, this PR is submitted.

> Changed OpenSSL to build using source code
> ------------------------------------------
>
>                 Key: GUACAMOLE-1945
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1945
>             Project: Guacamole
>          Issue Type: Improvement
>          Components: guacamole-server
>            Reporter: wuxiaobai
>            Priority: Minor
>
> Build OpenSSL from source code to adapt to newer operating systems.
> - https://github.com/apache/guacamole-server/pull/510
>  
> {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)

Reply via email to