You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@guacamole.apache.org by Andrew Kilgore <an...@gmail.com> on 2023/02/20 20:48:22 UTC

Building guacenc within Docker image on 1.5.0

Hi all,

I'm trying to build guacenc as part of the Docker build of the guacd image
with the source for 1.5.0. Previously (prior to 1.5.0) this was achieved by
adding libavformat-dev as a build dependency in the Dockerfile. However, as
the image for 1.5.0 is based on Alpine Linux this package is not available
(although ffmpeg-libavformat is available in the edge repository). I have
tried other packages instead but can't seem to find anything that works.

For example, if I use ffmpeg-dev I get the following compilation werrors:

make[2]: Entering directory '/tmp/guacamole-server/src/guacenc'
>   CC       guacenc-buffer.o
>   CC       guacenc-cursor.o
>   CC       guacenc-display.o
>   CC       guacenc-display-buffers.o
>   CC       guacenc-display-image-streams.o
>   CC       guacenc-display-flatten.o
>   CC       guacenc-display-layers.o
>   CC       guacenc-display-sync.o
>   CC       guacenc-encode.o
>   CC       guacenc-ffmpeg-compat.o
>   CC       guacenc-guacenc.o
>   CC       guacenc-image-stream.o
>   CC       guacenc-instructions.o
>   CC       guacenc-instruction-blob.o
>   CC       guacenc-instruction-cfill.o
>   CC       guacenc-instruction-copy.o
>   CC       guacenc-instruction-cursor.o
>   CC       guacenc-instruction-dispose.o
>   CC       guacenc-instruction-end.o
>   CC       guacenc-instruction-img.o
>   CC       guacenc-instruction-mouse.o
>   CC       guacenc-instruction-move.o
>   CC       guacenc-instruction-rect.o
>   CC       guacenc-instruction-shade.o
>   CC       guacenc-instruction-size.o
>   CC       guacenc-instruction-sync.o
>   CC       guacenc-instruction-transfer.o
>   CC       guacenc-jpeg.o
>   CC       guacenc-layer.o
>   CC       guacenc-log.o
>   CC       guacenc-parse.o

  CC       guacenc-png.o

  CC       guacenc-video.o
> video.c: In function 'guacenc_video_alloc':
> video.c:63:22: error: assignment discards 'const' qualifier from pointer
> target type [-Werror=discarded-qualifiers]
>    63 |     container_format = container_format_context->oformat;
>       |                      ^
> video.c:66:22: error: initialization discards 'const' qualifier from
> pointer target type [-Werror=discarded-qualifiers]
>    66 |     AVCodec* codec = avcodec_find_encoder_by_name(codec_name);
>       |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> make[2]: *** [Makefile:1126: guacenc-video.o] Error 1
> make[2]: Leaving directory '/tmp/guacamole-server/src/guacenc'
> make[1]: *** [Makefile:544: all-recursive] Error 1
> make[1]: Leaving directory '/tmp/guacamole-server'
> make: *** [Makefile:464: all] Error 2
> The command '/bin/sh -c ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh'
> returned a non-zero code: 2
>

Is building of guacenc within Docker still supported? If so, can someone
please advise me of what changes are required to the Dockerfile/
configure.ac/Makefile.am to achieve this?

Many thanks,
Andrew.

Re: Building guacenc within Docker image on 1.5.0

Posted by Michael Jumper <mj...@apache.org>.
On Mon, Feb 20, 2023, 12:48 PM Andrew Kilgore <an...@gmail.com>
wrote:

> Hi all,
>
> I'm trying to build guacenc as part of the Docker build of the guacd image
> with the source for 1.5.0. Previously (prior to 1.5.0) this was achieved by
> adding libavformat-dev as a build dependency in the Dockerfile. However, as
> the image for 1.5.0 is based on Alpine Linux this package is not available
> (although ffmpeg-libavformat is available in the edge repository). I have
> tried other packages instead but can't seem to find anything that works.
>
> For example, if I use ffmpeg-dev I get the following compilation werrors:
>
> make[2]: Entering directory '/tmp/guacamole-server/src/guacenc'
>>   CC       guacenc-buffer.o
>>   CC       guacenc-cursor.o
>>   CC       guacenc-display.o
>>   CC       guacenc-display-buffers.o
>>   CC       guacenc-display-image-streams.o
>>   CC       guacenc-display-flatten.o
>>   CC       guacenc-display-layers.o
>>   CC       guacenc-display-sync.o
>>   CC       guacenc-encode.o
>>   CC       guacenc-ffmpeg-compat.o
>>   CC       guacenc-guacenc.o
>>   CC       guacenc-image-stream.o
>>   CC       guacenc-instructions.o
>>   CC       guacenc-instruction-blob.o
>>   CC       guacenc-instruction-cfill.o
>>   CC       guacenc-instruction-copy.o
>>   CC       guacenc-instruction-cursor.o
>>   CC       guacenc-instruction-dispose.o
>>   CC       guacenc-instruction-end.o
>>   CC       guacenc-instruction-img.o
>>   CC       guacenc-instruction-mouse.o
>>   CC       guacenc-instruction-move.o
>>   CC       guacenc-instruction-rect.o
>>   CC       guacenc-instruction-shade.o
>>   CC       guacenc-instruction-size.o
>>   CC       guacenc-instruction-sync.o
>>   CC       guacenc-instruction-transfer.o
>>   CC       guacenc-jpeg.o
>>   CC       guacenc-layer.o
>>   CC       guacenc-log.o
>>   CC       guacenc-parse.o
>
>   CC       guacenc-png.o
>
>   CC       guacenc-video.o
>> video.c: In function 'guacenc_video_alloc':
>> video.c:63:22: error: assignment discards 'const' qualifier from pointer
>> target type [-Werror=discarded-qualifiers]
>>    63 |     container_format = container_format_context->oformat;
>>       |                      ^
>> video.c:66:22: error: initialization discards 'const' qualifier from
>> pointer target type [-Werror=discarded-qualifiers]
>>    66 |     AVCodec* codec = avcodec_find_encoder_by_name(codec_name);
>>       |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> cc1: all warnings being treated as errors
>> make[2]: *** [Makefile:1126: guacenc-video.o] Error 1
>> make[2]: Leaving directory '/tmp/guacamole-server/src/guacenc'
>> make[1]: *** [Makefile:544: all-recursive] Error 1
>> make[1]: Leaving directory '/tmp/guacamole-server'
>> make: *** [Makefile:464: all] Error 2
>> The command '/bin/sh -c ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh'
>> returned a non-zero code: 2
>>
>
> Is building of guacenc within Docker still supported?
>

This has never been specifically supported nor unsupported.

If so, can someone please advise me of what changes are required to the
> Dockerfile/configure.ac/Makefile.am to achieve this?
>

You would need to build from git master. The 1.5.0 release is not
compatible with that version of FFmpeg's API.

- Mike