When we remove the hacks in configure.ac and common/Makefile.am, two errors pop out: generated_server_demarshallers.c: In function ‘parse_msgc_smartcard_reader_add’: generated_server_demarshallers.c:1985:30: error: ‘mem_size’ undeclared (first use in this function); did you mean ‘nw_size’? data = (uint8_t *)malloc(mem_size); ^~~~~~~~ nw_size First one is caused by a missing declaration of mem_size, so we use the same condition that causes this code to be added to the check for the need of mem_size variable declaration in demarshal.py. generated_server_demarshallers.c:1985:30: note: each undeclared identifier is reported only once for each function it appears in generated_server_demarshallers.c:1994:15: error: ‘VSCMsgReaderAdd {aka struct VSCMsgReaderAdd}’ has no member named ‘reader_name’ memcpy(out->reader_name, in, reader_name__nelements); ^~ This second one is only a rename of 'reader_name' field to 'name', as specified in the VSCMsgReaderAdd structure in file vscard_common.h. N.B.: Even with those errors fixed, it looks like the generated code is really broken and should not be built at all. So, following suggestion after review in the mailing list, this patch also changes the define in the code to be different from the one that is used to tell whether the smartcard dependencies are found. https://lists.freedesktop.org/archives/spice-devel/2018-May/043395.html Signed-off-by: Eduardo Lima (Etrunko) <etrunko@xxxxxxxxxx> --- common/Makefile.am | 2 -- configure.ac | 7 ------- python_modules/demarshal.py | 2 +- spice.proto | 4 ++-- 4 files changed, 3 insertions(+), 12 deletions(-) diff --git a/common/Makefile.am b/common/Makefile.am index 22aec80..ea15039 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -78,8 +78,6 @@ libspice_common_server_la_SOURCES = \ $(SERVER_MARSHALLERS) \ $(NULL) -libspice_common_server_la_CFLAGS = -DFIXME_SERVER_SMARTCARD - AM_CPPFLAGS = \ -I$(top_srcdir) \ -I$(top_builddir) \ diff --git a/configure.ac b/configure.ac index 3da85de..39faf1c 100644 --- a/configure.ac +++ b/configure.ac @@ -64,11 +64,4 @@ AC_CONFIG_FILES([ docs/Makefile ]) -AH_BOTTOM([ -/* argh.. this is evil */ -#if defined(FIXME_SERVER_SMARTCARD) && defined(USE_SMARTCARD) -%:undef USE_SMARTCARD -#endif -]) - AC_OUTPUT diff --git a/python_modules/demarshal.py b/python_modules/demarshal.py index da87d44..9377869 100644 --- a/python_modules/demarshal.py +++ b/python_modules/demarshal.py @@ -1042,7 +1042,7 @@ def write_msg_parser(writer, message): msg_sizeof = message.sizeof() want_mem_size = (len(message.members) != 1 or message.members[0].is_fixed_nw_size() - or not message.members[0].is_array()) + or not (message.members[0].is_array() and message.has_attr("nocopy"))) writer.newline() if message.has_attr("ifdef"): diff --git a/spice.proto b/spice.proto index 6f873a2..632f798 100644 --- a/spice.proto +++ b/spice.proto @@ -1423,9 +1423,9 @@ channel SmartcardChannel : BaseChannel { } @ctype(VSCMsgATR) atr = 101; message { - int8 reader_name[] @zero_terminated @nonnull; + int8 name[] @zero_terminated @nonnull; } @ctype(VSCMsgReaderAdd) reader_add = 101; -} @ifdef(USE_SMARTCARD); +} @ifdef(FIXME_SERVER_SMARTCARD) //@ifdef(USE_SMARTCARD); channel SpicevmcChannel : BaseChannel { server: -- 2.14.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel