[ https://issues.apache.org/jira/browse/GUACAMOLE-2046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17938629#comment-17938629 ]
Per von Zweigbergk edited comment on GUACAMOLE-2046 at 3/26/25 2:53 PM: ------------------------------------------------------------------------ I was mistaken, install_from_git doesn't just randomly grab the HEAD from MASTER. It does attempt to find the tag of the latest released version and goes with that. The regex to find this is defined in the Dockerfile like this: {{ARG WITH_FREERDP="${FREERDP_VERSION}(\.\d+)+"}} And FREERDP_VERSION is defined by default like this: {{ARG FREERDP_VERSION=3}} The result appears to be that the build file downloads the latest FreeRDP 3 version as tagged on Github. Fortunately, because this is a build argument, it's possible to set this at build time, e.g. to pin the specific point release of FreeRDP, for example like this in a docker compose file: {{# services}} {{services:}} {{ # guacd}} {{ guacd:}} {{ container_name: guacd_compose}} {{ build:}} {{ context: ~/src/guacamole-server}} {{ args:}} {{ WITH_FREERDP: 3\.13\.0}} {{ restart: always}} {{ volumes:}} {{ - ./drive:/drive:rw}} {{ - ./record:/record:rw}} (FREERDP_VERSION apperars to be used in other places than building this regex, so changing that seems to not be the solution, instead changing WITH_FREERDP) It looks like the change that broke this build was introduced in this commit in FreeRDP: [https://github.com/FreeRDP/FreeRDP/commit/e259eee0dfea76c82f7435cb4a88fa53310d2d8b, |https://github.com/FreeRDP/FreeRDP/commit/e259eee0dfea76c82f7435cb4a88fa53310d2d8b]and the latest version that works with guacd-docker is 3.13.0. Therefore, until FreeRDP fixes whatever's broken upstream, or guacd-docker makes the neccessary changes to make the build work, I suggest that FreeRDP should be pinned to version 3.13.0, either by updating the Dockerfile, or by changing the build arguments in the appropriate pipelines. was (Author: JIRAUSER308815): I was mistaken, install_from_git doesn't just randomly grab the HEAD from MASTER. It does attempt to find the tag of the latest released version and goes with that. The regex to find this is defined in the Dockerfile like this: {{ARG WITH_FREERDP="${FREERDP_VERSION}(\.\d+)+"}} And FREERDP_VERSION is defined by default like this: {{ARG FREERDP_VERSION=3}} The result appears to be that the build file downloads the latest FreeRDP 3 version as tagged on Github. Fortunately, because this is a build argument, it's possible to set this at build time, e.g. to pin the specific point release of FreeRDP, for example like this in a docker compose file: {{# services}} {{services:}} {{ # guacd}} {{ guacd:}} {{ container_name: guacd_compose}} {{ build:}} {{ context: ~/src/guacamole-server}} {{ args:}} {{ WITH_FREERDP: 3.13.0}} {{ restart: always}} {{ volumes:}} {{ - ./drive:/drive:rw}} {{ - ./record:/record:rw}} (FREERDP_VERSION apperars to be used in other places than building this regex, so changing that seems to not be the solution, instead changing WITH_FREERDP) It looks like the change that broke this build was introduced in this commit in FreeRDP: [https://github.com/FreeRDP/FreeRDP/commit/e259eee0dfea76c82f7435cb4a88fa53310d2d8b, |https://github.com/FreeRDP/FreeRDP/commit/e259eee0dfea76c82f7435cb4a88fa53310d2d8b]and the latest version that works with guacd-docker is 3.13.0. Therefore, until FreeRDP fixes whatever's broken upstream, or guacd-docker makes the neccessary changes to make the build work, I suggest that FreeRDP should be pinned to version 3.13.0, either by updating the Dockerfile, or by changing the build arguments in the appropriate pipelines. > Docker images do not build ('codecs_free' is deprecated) > -------------------------------------------------------- > > Key: GUACAMOLE-2046 > URL: https://issues.apache.org/jira/browse/GUACAMOLE-2046 > Project: Guacamole > Issue Type: Bug > Components: guacd-docker > Reporter: Per von Zweigbergk > Priority: Blocker > > As of the current HEAD of the main branch in the guacamole-server repository, > the Docker image does not build, as per the output below. > This happens when just doing a "docker build ." in a freshly checked out > guacamole-server repository, with its head at commit > 32dbdfae14fb3d41d113d37f87a61d3719fa8b21. > The current docker builds on Github also fail with the same issues. > I was able to find som references to this issue in > [https://github.com/apache/guacamole-server/pull/579] - however I didn't see > a Jira ticket for this, so I thought one should be created. > There's an upstream bug opened with FreeRDP at > [https://github.com/FreeRDP/FreeRDP/issues/11412] - but FreeRDP seems to > think this is a GCC issue. > The fact that this has started happening recently even though there have been > no changes to the Dockerfile for a while seems consistent with an issue > introduced in a recent update to the build environment coming from an alpine > package update. > It's however also possible that the issue is due to some recent change to the > FreeRDP codebase, since it appears that guacd-docker/bin/build-all.sh just > grabs the latest code from the FreeRDP github repository without specifying a > specific tag or commit, causing some variability in the images being built > due to external factors. > > {{193.5 make[4]: Entering directory > '/tmp/guacamole-server/src/protocols/rdp'}} > {{193.5 CC > plugins/guac-common-svc/libguac_common_svc_client_la-guac-common-svc.lo}} > {{193.6 In file included from > /opt/guacamole/lib/pkgconfig/../../include/freerdp3/freerdp/client/rdpgfx.h:28,}} > {{193.6 from > /opt/guacamole/lib/pkgconfig/../../include/freerdp3/freerdp/gdi/gdi.h:34,}} > {{193.6 from > /opt/guacamole/lib/pkgconfig/../../include/freerdp3/freerdp/freerdp.h:35,}} > {{193.6 from ./channels/common-svc.h:23,}} > {{193.6 from plugins/guac-common-svc/guac-common-svc.c:21:}} > {{193.6 > /opt/guacamole/lib/pkgconfig/../../include/freerdp3/freerdp/codecs.h:93:9: > error: 'codecs_free' is deprecated: [since 3.6.0] Use > freerdp_client_codecs_free [-Werror=deprecated-declarations]}} > {{193.6 93 | WINPR_DEPRECATED_VAR("[since 3.6.0] Use > freerdp_client_codecs_new",}} > {{193.6 | ^~~~~~~~~~~~~~~~~~~~}} > {{193.6 In file included from > /opt/guacamole/lib/pkgconfig/../../include/winpr3/winpr/winpr.h:22,}} > {{193.6 from > /opt/guacamole/lib/pkgconfig/../../include/winpr3/winpr/stream.h:26,}} > {{193.6 from > /opt/guacamole/lib/pkgconfig/../../include/freerdp3/freerdp/freerdp.h:25:}} > {{193.6 > /opt/guacamole/lib/pkgconfig/../../include/freerdp3/freerdp/codecs.h:91:47: > note: declared here}} > {{193.6 91 | FREERDP_API void > codecs_free(rdpCodecs* codecs));}} > {{193.6 | ^~~~~~~~~~~}} > {{193.6 > /opt/guacamole/lib/pkgconfig/../../include/winpr3/winpr/platform.h:497:41: > note: in definition of macro 'WINPR_DEPRECATED_VAR'}} > {{193.6 497 | #define WINPR_DEPRECATED_VAR(text, obj) obj > _{_}attribute{_}_((deprecated(text)))}} > {{193.6 | ^~~}} > {{193.7 cc1: all warnings being treated as errors}} > {{193.7 make[4]: *** [Makefile:1409: > plugins/guac-common-svc/libguac_common_svc_client_la-guac-common-svc.lo] > Error 1}} > {{193.7 make[4]: Leaving directory '/tmp/guacamole-server/src/protocols/rdp'}} > {{193.7 make[3]: *** [Makefile:1463: all-recursive] Error 1}} > {{193.7 make[3]: Leaving directory '/tmp/guacamole-server/src/protocols/rdp'}} > {{193.7 make[2]: *** [Makefile:761: all] Error 2}} > {{193.7 make[2]: Leaving directory '/tmp/guacamole-server/src/protocols/rdp'}} > {{193.7 make[1]: *** [Makefile:545: all-recursive] Error 1}} > {{193.7 make[1]: Leaving directory '/tmp/guacamole-server'}} > {{193.7 make: *** [Makefile:465: all] Error 2}} > {{------}} > {{Dockerfile:154}} > {{--------------------}} > {{ 152 | }} > {{ 153 | # Build guacamole-server and its core protocol library > dependencies}} > {{ 154 | >>> RUN ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh}} > {{ 155 | }} > {{ 156 | # Determine location of the FREERDP library based on the > version.}} > {{--------------------}} > {{ERROR: failed to solve: process "/bin/sh -c > ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh" did not complete > successfully: exit code: 2}} -- This message was sent by Atlassian Jira (v8.20.10#820010)