jbuchermn/pywm

Error in arch when running ninja -C build

CRAG666 opened this issue · 4 comments

This error is related to this error jbuchermn/newm#71

the error is the following:
[345/471] Compiling C object subprojects/wlroots/examples/dmabuf-capture.p/dmabuf-capture.c.o
FAILED: subprojects/wlroots/examples/dmabuf-capture.p/dmabuf-capture.c.o
cc -Isubprojects/wlroots/examples/dmabuf-capture.p -Isubprojects/wlroots/examples -I../subprojects/wlroots/examples -Isubprojects/wlroots/protocol -I/usr/include/libdrm -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -g -DWLR_USE_UNSTABLE -DWLR_LITTLE_ENDIAN=1 -DWLR_BIG_ENDIAN=0 -Wundef -Wlogical-op -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wstrict-prototypes -Wimplicit-fallthrough=2 -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wmissing-prototypes -Walloca -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -fmacro-prefix-map=../subprojects/wlroots/= -DHAS_GBM_BO_GET_FD_FOR_PLANE=1 -DLIBINPUT_HAS_HOLD_GESTURES=1 '-DICONDIR="/usr/local/share/icons"' -DHAS_XCB_ERRORS=1 -pthread -MD -MQ subprojects/wlroots/examples/dmabuf-capture.p/dmabuf-capture.c.o -MF subprojects/wlroots/examples/dmabuf-capture.p/dmabuf-capture.c.o.d -o subprojects/wlroots/examples/dmabuf-capture.p/dmabuf-capture.c.o -c ../subprojects/wlroots/examples/dmabuf-capture.c
../subprojects/wlroots/examples/dmabuf-capture.c:60:9: error: nombre de tipo ‘AVCodecContext’ desconocido
60 | AVCodecContext *avctx;
| ^~~~~~~~~~~~~~
../subprojects/wlroots/examples/dmabuf-capture.c: En la función ‘frame_ready’:
../subprojects/wlroots/examples/dmabuf-capture.c:389:35: error: petición del miembro ‘time_base’ en algo que no es una estructura o unión
389 | ctx->avctx->time_base);
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c: En la función ‘vid_encode_thread’:
../subprojects/wlroots/examples/dmabuf-capture.c:483:23: error: declaración implícita de la función ‘avcodec_send_frame’; ¿quiso decir ‘avcodec_get_name’? [-Werror=implicit-function-declaration]
483 | err = avcodec_send_frame(ctx->avctx, f);
| ^~~~~~~~~~~~~~~~~~
| avcodec_get_name
../subprojects/wlroots/examples/dmabuf-capture.c:494:35: error: declaración implícita de la función ‘avcodec_receive_packet’ [-Werror=implicit-function-declaration]
494 | int ret = avcodec_receive_packet(ctx->avctx, pkt);
| ^~~~~~~~~~~~~~~~~~~~~~
../subprojects/wlroots/examples/dmabuf-capture.c:523:43: error: petición del miembro ‘frame_number’ en algo que no es una estructura o unión
523 | ctx->avctx->frame_number, get_fifo_size(&ctx->vid_frames));
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c: En la función ‘set_hwframe_ctx’:
../subprojects/wlroots/examples/dmabuf-capture.c:579:43: error: petición del miembro ‘pix_fmt’ en algo que no es una estructura o unión
579 | frames_ctx->sw_format = ctx->avctx->pix_fmt;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:580:39: error: petición del miembro ‘width’ en algo que no es una estructura o unión
580 | frames_ctx->width = ctx->avctx->width;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:581:40: error: petición del miembro ‘height’ en algo que no es una estructura o unión
581 | frames_ctx->height = ctx->avctx->height;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:593:27: error: petición del miembro ‘pix_fmt’ en algo que no es una estructura o unión
593 | ctx->avctx->pix_fmt = frames_ctx->format;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:594:27: error: petición del miembro ‘hw_frames_ctx’ en algo que no es una estructura o unión
594 | ctx->avctx->hw_frames_ctx = av_buffer_ref(ctx->mapped_frames_ref);
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:595:32: error: petición del miembro ‘hw_frames_ctx’ en algo que no es una estructura o unión
595 | if (!ctx->avctx->hw_frames_ctx) {
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c: En la función ‘init_encoding’:
../subprojects/wlroots/examples/dmabuf-capture.c:622:30: error: la inicialización descarta el calificador ‘const’ del tipo del destino del puntero [-Werror=discarded-qualifiers]
622 | AVCodec *out_codec = avcodec_find_encoder_by_name(ctx->encoder_name);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../subprojects/wlroots/examples/dmabuf-capture.c:627:40: error: asignación de miembro ‘video_codec’ en objeto de sólo-lectura
627 | ctx->avf->oformat->video_codec = out_codec->id;
| ^
../subprojects/wlroots/examples/dmabuf-capture.c:630:22: error: declaración implícita de la función ‘avcodec_alloc_context3’; ¿quiso decir ‘avio_alloc_context’? [-Werror=implicit-function-declaration]
630 | ctx->avctx = avcodec_alloc_context3(out_codec);
| ^~~~~~~~~~~~~~~~~~~~~~
| avio_alloc_context
../subprojects/wlroots/examples/dmabuf-capture.c:630:20: error: la asignación a ‘int ’ desde ‘int’ crea un puntero desde un entero sin una conversión [-Werror=int-conversion]
630 | ctx->avctx = avcodec_alloc_context3(out_codec);
| ^
../subprojects/wlroots/examples/dmabuf-capture.c:634:19: error: petición del miembro ‘opaque’ en algo que no es una estructura o unión
634 | ctx->avctx->opaque = ctx;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:635:19: error: petición del miembro ‘bit_rate’ en algo que no es una estructura o unión
635 | ctx->avctx->bit_rate = (int)ctx->out_bitrate
1000000.0f;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:636:19: error: petición del miembro ‘pix_fmt’ en algo que no es una estructura o unión
636 | ctx->avctx->pix_fmt = ctx->software_format;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:637:19: error: petición del miembro ‘time_base’ en algo que no es una estructura o unión
637 | ctx->avctx->time_base = (AVRational){ 1, 1000 };
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:638:19: error: petición del miembro ‘compression_level’ en algo que no es una estructura o unión
638 | ctx->avctx->compression_level = 7;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:639:19: error: petición del miembro ‘width’ en algo que no es una estructura o unión
639 | ctx->avctx->width = find_output(ctx, ctx->target_output, 0)->width;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:640:19: error: petición del miembro ‘height’ en algo que no es una estructura o unión
640 | ctx->avctx->height = find_output(ctx, ctx->target_output, 0)->height;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:643:27: error: petición del miembro ‘flags’ en algo que no es una estructura o unión
643 | ctx->avctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:643:38: error: ‘AV_CODEC_FLAG_GLOBAL_HEADER’ no se declaró aquí (primer uso en esta función)
643 | ctx->avctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../subprojects/wlroots/examples/dmabuf-capture.c:643:38: nota: cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece
../subprojects/wlroots/examples/dmabuf-capture.c:647:35: error: petición del miembro ‘time_base’ en algo que no es una estructura o unión
647 | st->time_base = ctx->avctx->time_base;
| ^~
../subprojects/wlroots/examples/dmabuf-capture.c:656:15: error: declaración implícita de la función ‘avcodec_open2’; ¿quiso decir ‘avio_open2’? [-Werror=implicit-function-declaration]
656 | err = avcodec_open2(ctx->avctx, out_codec, &ctx->encoder_opts);
| ^~~~~~~~~~~~~
| avio_open2
../subprojects/wlroots/examples/dmabuf-capture.c:663:13: error: declaración implícita de la función ‘avcodec_parameters_from_context’; ¿quiso decir ‘avcodec_parameters_free’? [-Werror=implicit-function-declaration]
663 | if (avcodec_parameters_from_context(st->codecpar, ctx->avctx) < 0) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| avcodec_parameters_free
../subprojects/wlroots/examples/dmabuf-capture.c: En la función ‘uninit’:
../subprojects/wlroots/examples/dmabuf-capture.c:897:9: error: declaración implícita de la función ‘avcodec_close’; ¿quiso decir ‘avio_close’? [-Werror=implicit-function-declaration]
897 | avcodec_close(ctx->avctx);
| ^~~~~~~~~~~~~
| avio_close
cc1: todos los avisos se tratan como errores
[350/471] Compiling C object subprojects/wlroots/examples/toplevel-decoration.p/toplevel-decoration.c.o
ninja: build stopped: subcommand failed.

@jbuchermn It is one of the example files that has the problem. I solved it by removing that file from meson.build. I don't know if this is the correct solution, the file in question is /subprojects/wlroots/examples/dmabuf-capture

Hey,

thanks a lot for debugging this!

I just updated wlroots to the most recent commit which should include the corresponding bugfix.

Can you try if installation on v0.3 works without patching?

@jbuchermn This works perfectly, the error no longer exists

@jbuchermn It would be good if you could check the issue at newm.