GUACAMOLE-1241: Merge avoid double-free when building against FreeRDP development snapshot.
This commit is contained in:
commit
90e15cb706
71
Dockerfile
71
Dockerfile
@ -21,13 +21,30 @@
|
|||||||
# Dockerfile for guacamole-server
|
# Dockerfile for guacamole-server
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# The Debian image that should be used as the basis for the guacd image
|
||||||
|
ARG DEBIAN_BASE_IMAGE=buster-slim
|
||||||
|
|
||||||
# Use Debian as base for the build
|
# Use Debian as base for the build
|
||||||
ARG DEBIAN_VERSION=stable
|
FROM debian:${DEBIAN_BASE_IMAGE} AS builder
|
||||||
FROM debian:${DEBIAN_VERSION} AS builder
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# The Debian repository that should be preferred for dependencies (this will be
|
||||||
|
# added to /etc/apt/sources.list if not already present)
|
||||||
|
#
|
||||||
|
# NOTE: Due to limitations of the Docker image build process, this value is
|
||||||
|
# duplicated in an ARG in the second stage of the build.
|
||||||
|
#
|
||||||
|
ARG DEBIAN_RELEASE=buster-backports
|
||||||
|
|
||||||
|
# Add repository for specified Debian release if not already present in
|
||||||
|
# sources.list
|
||||||
|
RUN grep " ${DEBIAN_RELEASE} " /etc/apt/sources.list || echo >> /etc/apt/sources.list \
|
||||||
|
"deb http://deb.debian.org/debian ${DEBIAN_RELEASE} main contrib non-free"
|
||||||
|
|
||||||
|
#
|
||||||
# Base directory for installed build artifacts.
|
# Base directory for installed build artifacts.
|
||||||
# Due to limitations of the Docker image build process, this value is
|
#
|
||||||
|
# NOTE: Due to limitations of the Docker image build process, this value is
|
||||||
# duplicated in an ARG in the second stage of the build.
|
# duplicated in an ARG in the second stage of the build.
|
||||||
#
|
#
|
||||||
ARG PREFIX_DIR=/usr/local/guacamole
|
ARG PREFIX_DIR=/usr/local/guacamole
|
||||||
@ -53,9 +70,12 @@ ARG BUILD_DEPENDENCIES=" \
|
|||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
make"
|
make"
|
||||||
|
|
||||||
|
# Do not require interaction during build
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
# Bring build environment up to date and install build dependencies
|
# Bring build environment up to date and install build dependencies
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y $BUILD_DEPENDENCIES && \
|
apt-get install -t ${DEBIAN_RELEASE} -y $BUILD_DEPENDENCIES && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Add configuration scripts
|
# Add configuration scripts
|
||||||
@ -68,20 +88,36 @@ COPY . "$BUILD_DIR"
|
|||||||
RUN ${PREFIX_DIR}/bin/build-guacd.sh "$BUILD_DIR" "$PREFIX_DIR"
|
RUN ${PREFIX_DIR}/bin/build-guacd.sh "$BUILD_DIR" "$PREFIX_DIR"
|
||||||
|
|
||||||
# Record the packages of all runtime library dependencies
|
# Record the packages of all runtime library dependencies
|
||||||
RUN ${PREFIX_DIR}/bin/list-dependencies.sh \
|
RUN ${PREFIX_DIR}/bin/list-dependencies.sh \
|
||||||
${PREFIX_DIR}/sbin/guacd \
|
${PREFIX_DIR}/sbin/guacd \
|
||||||
${PREFIX_DIR}/lib/libguac-client-*.so \
|
${PREFIX_DIR}/lib/libguac-client-*.so \
|
||||||
${PREFIX_DIR}/lib/freerdp2/guac*.so \
|
${PREFIX_DIR}/lib/freerdp2/*guac*.so \
|
||||||
> ${PREFIX_DIR}/DEPENDENCIES
|
> ${PREFIX_DIR}/DEPENDENCIES
|
||||||
|
|
||||||
# Use same Debian as the base for the runtime image
|
# Use same Debian as the base for the runtime image
|
||||||
FROM debian:${DEBIAN_VERSION}-slim
|
FROM debian:${DEBIAN_BASE_IMAGE}
|
||||||
|
|
||||||
# Base directory for installed build artifacts.
|
#
|
||||||
# Due to limitations of the Docker image build process, this value is
|
# The Debian repository that should be preferred for dependencies (this will be
|
||||||
# duplicated in an ARG in the first stage of the build. See also the
|
# added to /etc/apt/sources.list if not already present)
|
||||||
|
#
|
||||||
|
# NOTE: Due to limitations of the Docker image build process, this value is
|
||||||
|
# duplicated in an ARG in the first stage of the build.
|
||||||
|
#
|
||||||
|
ARG DEBIAN_RELEASE=buster-backports
|
||||||
|
|
||||||
|
# Add repository for specified Debian release if not already present in
|
||||||
|
# sources.list
|
||||||
|
RUN grep " ${DEBIAN_RELEASE} " /etc/apt/sources.list || echo >> /etc/apt/sources.list \
|
||||||
|
"deb http://deb.debian.org/debian ${DEBIAN_RELEASE} main contrib non-free"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Base directory for installed build artifacts. See also the
|
||||||
# CMD directive at the end of this build stage.
|
# CMD directive at the end of this build stage.
|
||||||
#
|
#
|
||||||
|
# NOTE: Due to limitations of the Docker image build process, this value is
|
||||||
|
# duplicated in an ARG in the first stage of the build.
|
||||||
|
#
|
||||||
ARG PREFIX_DIR=/usr/local/guacamole
|
ARG PREFIX_DIR=/usr/local/guacamole
|
||||||
|
|
||||||
# Runtime environment
|
# Runtime environment
|
||||||
@ -97,13 +133,16 @@ ARG RUNTIME_DEPENDENCIES=" \
|
|||||||
fonts-dejavu \
|
fonts-dejavu \
|
||||||
xfonts-terminus"
|
xfonts-terminus"
|
||||||
|
|
||||||
|
# Do not require interaction during build
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
# Copy build artifacts into this stage
|
# Copy build artifacts into this stage
|
||||||
COPY --from=builder ${PREFIX_DIR} ${PREFIX_DIR}
|
COPY --from=builder ${PREFIX_DIR} ${PREFIX_DIR}
|
||||||
|
|
||||||
# Bring runtime environment up to date and install runtime dependencies
|
# Bring runtime environment up to date and install runtime dependencies
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends $RUNTIME_DEPENDENCIES && \
|
apt-get install -t ${DEBIAN_RELEASE} -y --no-install-recommends $RUNTIME_DEPENDENCIES && \
|
||||||
apt-get install -y --no-install-recommends $(cat "${PREFIX_DIR}"/DEPENDENCIES) && \
|
apt-get install -t ${DEBIAN_RELEASE} -y --no-install-recommends $(cat "${PREFIX_DIR}"/DEPENDENCIES) && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Link FreeRDP plugins into proper path
|
# Link FreeRDP plugins into proper path
|
||||||
|
13
configure.ac
13
configure.ac
@ -627,7 +627,13 @@ fi
|
|||||||
# between releases, as the change in behavior may not (yet) be associated with
|
# between releases, as the change in behavior may not (yet) be associated with
|
||||||
# a corresponding change in version number and may not have any detectable
|
# a corresponding change in version number and may not have any detectable
|
||||||
# effect on the FreeRDP API
|
# effect on the FreeRDP API
|
||||||
if test "x${have_freerdp2}" = "xyes"
|
|
||||||
|
AC_ARG_ENABLE(allow_freerdp_snapshots,
|
||||||
|
[AS_HELP_STRING([--enable-allow-freerdp-snapshots],
|
||||||
|
[allow building against unknown development snapshots of FreeRDP])
|
||||||
|
],allow_freerdp_snapshots=yes)
|
||||||
|
|
||||||
|
if test "x${have_freerdp2}" = "xyes" -a "x${allow_freerdp_snapshots}" != "xyes"
|
||||||
then
|
then
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether FreeRDP appears to be a development version])
|
AC_MSG_CHECKING([whether FreeRDP appears to be a development version])
|
||||||
@ -639,7 +645,7 @@ then
|
|||||||
],
|
],
|
||||||
[AC_MSG_RESULT([no])],
|
[AC_MSG_RESULT([no])],
|
||||||
[AC_MSG_RESULT([yes])]
|
[AC_MSG_RESULT([yes])]
|
||||||
[AC_MSG_WARN([
|
[AC_MSG_ERROR([
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
You are building against a development version of FreeRDP. Non-release
|
You are building against a development version of FreeRDP. Non-release
|
||||||
versions of FreeRDP may have differences in behavior that are impossible to
|
versions of FreeRDP may have differences in behavior that are impossible to
|
||||||
@ -647,6 +653,9 @@ then
|
|||||||
behavior.
|
behavior.
|
||||||
|
|
||||||
*** PLEASE USE A RELEASED VERSION OF FREERDP IF POSSIBLE ***
|
*** PLEASE USE A RELEASED VERSION OF FREERDP IF POSSIBLE ***
|
||||||
|
|
||||||
|
If you are ABSOLUTELY CERTAIN that building against this version of FreeRDP
|
||||||
|
is OK, rerun configure with the --enable-allow-freerdp-snapshots
|
||||||
--------------------------------------------])])
|
--------------------------------------------])])
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user