On Mon, Feb 20, 2023, 12:48 PM Andrew Kilgore <[email protected]>
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