Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libtraceevent for openSUSE:Factory checked in at 2025-04-02 17:05:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libtraceevent (Old) and /work/SRC/openSUSE:Factory/.libtraceevent.new.1907 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libtraceevent" Wed Apr 2 17:05:22 2025 rev:15 rq:1265512 version:1.8.4 Changes: -------- --- /work/SRC/openSUSE:Factory/libtraceevent/libtraceevent.changes 2024-09-05 15:46:42.686885838 +0200 +++ /work/SRC/openSUSE:Factory/.libtraceevent.new.1907/libtraceevent.changes 2025-04-02 17:05:50.306425945 +0200 @@ -1,0 +2,8 @@ +Sun Mar 30 10:59:16 UTC 2025 - Dirk Müller <dmuel...@suse.com> + +- update to 1.8.4: + * Have sizeof() parsing handle u8/s8 through u64/s64 + * Print arrays like Linux does + * Print function pointer address when TEP_EVENT_FL_PRINTRAW is specified + +------------------------------------------------------------------- Old: ---- libtraceevent-1.8.3.tar.gz New: ---- libtraceevent-1.8.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libtraceevent.spec ++++++ --- /var/tmp/diff_new_pack.vZtT9B/_old 2025-04-02 17:05:51.286466980 +0200 +++ /var/tmp/diff_new_pack.vZtT9B/_new 2025-04-02 17:05:51.286466980 +0200 @@ -1,7 +1,7 @@ # # spec file for package libtraceevent # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,7 +22,7 @@ %define sodname %{dname}%{sonum} Name: libtraceevent -Version: 1.8.3 +Version: 1.8.4 Release: 0 Summary: Linux kernel trace event library License: GPL-2.0-only AND LGPL-2.1-only ++++++ libtraceevent-1.8.3.tar.gz -> libtraceevent-1.8.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtraceevent-1.8.3/Makefile new/libtraceevent-1.8.4/Makefile --- old/libtraceevent-1.8.3/Makefile 2024-07-24 19:28:57.000000000 +0200 +++ new/libtraceevent-1.8.4/Makefile 2024-10-11 23:26:45.000000000 +0200 @@ -2,7 +2,7 @@ # libtraceevent version EP_VERSION = 1 EP_PATCHLEVEL = 8 -EP_EXTRAVERSION = 3 +EP_EXTRAVERSION = 4 EVENT_PARSE_VERSION = $(EP_VERSION).$(EP_PATCHLEVEL).$(EP_EXTRAVERSION) MAKEFLAGS += --no-print-directory diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtraceevent-1.8.3/meson.build new/libtraceevent-1.8.4/meson.build --- old/libtraceevent-1.8.3/meson.build 2024-07-24 19:28:57.000000000 +0200 +++ new/libtraceevent-1.8.4/meson.build 2024-10-11 23:26:45.000000000 +0200 @@ -6,7 +6,7 @@ 'libtraceevent', ['c'], meson_version: '>= 0.58.0', license: 'LGPL-2.1', - version: '1.8.3', + version: '1.8.4', default_options: [ 'c_std=gnu99', 'buildtype=debug', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtraceevent-1.8.3/src/event-parse.c new/libtraceevent-1.8.4/src/event-parse.c --- old/libtraceevent-1.8.3/src/event-parse.c 2024-07-24 19:28:57.000000000 +0200 +++ new/libtraceevent-1.8.4/src/event-parse.c 2024-10-11 23:26:45.000000000 +0200 @@ -3571,6 +3571,23 @@ /* The token is the next token */ token_has_paren = true; } + + } else if (strcmp(token, "__u64") == 0 || strcmp(token, "u64") == 0 || + strcmp(token, "__s64") == 0 || strcmp(token, "s64") == 0) { + arg->atom.atom = strdup("8"); + + } else if (strcmp(token, "__u32") == 0 || strcmp(token, "u32") == 0 || + strcmp(token, "__s32") == 0 || strcmp(token, "s32") == 0) { + arg->atom.atom = strdup("4"); + + } else if (strcmp(token, "__u16") == 0 || strcmp(token, "u16") == 0 || + strcmp(token, "__s16") == 0 || strcmp(token, "s16") == 0) { + arg->atom.atom = strdup("2"); + + } else if (strcmp(token, "__u8") == 0 || strcmp(token, "u8") == 0 || + strcmp(token, "__8") == 0 || strcmp(token, "s8") == 0) { + arg->atom.atom = strdup("1"); + } else if (strcmp(token, "REC") == 0) { free_token(token); @@ -4938,18 +4955,19 @@ len = eval_num_arg(data, size, event, arg->int_array.count); el_size = eval_num_arg(data, size, event, arg->int_array.el_size); + trace_seq_putc(s, '{'); for (i = 0; i < len; i++) { if (i) - trace_seq_putc(s, ' '); + trace_seq_putc(s, ','); if (el_size == 1) { - trace_seq_printf(s, "%u", *(uint8_t *)num); + trace_seq_printf(s, "0x%x", *(uint8_t *)num); } else if (el_size == 2) { - trace_seq_printf(s, "%u", *(uint16_t *)num); + trace_seq_printf(s, "0x%x", *(uint16_t *)num); } else if (el_size == 4) { - trace_seq_printf(s, "%u", *(uint32_t *)num); + trace_seq_printf(s, "0x%x", *(uint32_t *)num); } else if (el_size == 8) { - trace_seq_printf(s, "%"PRIu64, *(uint64_t *)num); + trace_seq_printf(s, "0x%"PRIx64, *(uint64_t *)num); } else { trace_seq_printf(s, "BAD SIZE:%d 0x%x", el_size, *(uint8_t *)num); @@ -4958,6 +4976,7 @@ num += el_size; } + trace_seq_putc(s, '}'); break; } case TEP_PRINT_TYPE: @@ -6001,11 +6020,11 @@ } static int print_parse_data(struct tep_print_parse *parse, struct trace_seq *s, - void *data, int size, struct tep_event *event); + void *data, int size, struct tep_event *event, bool raw); static inline void print_field(struct trace_seq *s, void *data, int size, struct tep_format_field *field, - struct tep_print_parse **parse_ptr) + struct tep_print_parse **parse_ptr, bool raw) { struct tep_event *event = field->event; struct tep_print_parse *start_parse; @@ -6049,7 +6068,7 @@ if (has_0x) trace_seq_puts(s, "0x"); - print_parse_data(parse, s, data, size, event); + print_parse_data(parse, s, data, size, event, raw); if (parse_ptr) *parse_ptr = parse->next; @@ -6081,7 +6100,7 @@ void tep_print_field_content(struct trace_seq *s, void *data, int size, struct tep_format_field *field) { - print_field(s, data, size, field, NULL); + print_field(s, data, size, field, NULL, false); } /** DEPRECATED **/ @@ -6089,13 +6108,13 @@ struct tep_format_field *field) { /* unsafe to use, should pass in size */ - print_field(s, data, 4096, field, NULL); + print_field(s, data, 4096, field, NULL, false); } static inline void print_selected_fields(struct trace_seq *s, void *data, int size, struct tep_event *event, - unsigned long long ignore_mask) + unsigned long long ignore_mask, bool raw) { struct tep_print_parse *parse = event->print_fmt.print_cache; struct tep_format_field *field; @@ -6107,14 +6126,14 @@ continue; trace_seq_printf(s, " %s=", field->name); - print_field(s, data, size, field, &parse); + print_field(s, data, size, field, &parse, raw); } } void tep_print_fields(struct trace_seq *s, void *data, int size, struct tep_event *event) { - print_selected_fields(s, data, size, event, 0); + print_selected_fields(s, data, size, event, 0, false); } /** @@ -6128,7 +6147,7 @@ struct tep_record *record, struct tep_event *event) { - print_selected_fields(s, record->data, record->size, event, 0); + print_selected_fields(s, record->data, record->size, event, 0, false); } /** @@ -6146,12 +6165,12 @@ { unsigned long long ignore_mask = ~select_mask; - print_selected_fields(s, record->data, record->size, event, ignore_mask); + print_selected_fields(s, record->data, record->size, event, ignore_mask, false); } static int print_function(struct trace_seq *s, const char *format, void *data, int size, struct tep_event *event, - struct tep_print_arg *arg) + struct tep_print_arg *arg, bool raw) { struct func_map *func; unsigned long long val; @@ -6162,11 +6181,17 @@ trace_seq_puts(s, func->func); if (*format == 'F' || *format == 'S') trace_seq_printf(s, "+0x%llx", val - func->addr); - } else { + } + + if (!func || raw) { + if (raw) + trace_seq_puts(s, " ("); if (event->tep->long_size == 4) trace_seq_printf(s, "0x%lx", (long)val); else trace_seq_printf(s, "0x%llx", (long long)val); + if (raw) + trace_seq_puts(s, ")"); } return 0; @@ -6174,7 +6199,8 @@ static int print_arg_pointer(struct trace_seq *s, const char *format, int plen, void *data, int size, - struct tep_event *event, struct tep_print_arg *arg) + struct tep_event *event, struct tep_print_arg *arg, + bool raw) { unsigned long long val; int ret = 1; @@ -6196,7 +6222,7 @@ case 'f': case 'S': case 's': - ret += print_function(s, format, data, size, event, arg); + ret += print_function(s, format, data, size, event, arg, raw); break; case 'M': case 'm': @@ -6660,7 +6686,7 @@ } static int print_parse_data(struct tep_print_parse *parse, struct trace_seq *s, - void *data, int size, struct tep_event *event) + void *data, int size, struct tep_event *event, bool raw) { int len_arg; @@ -6676,7 +6702,7 @@ case PRINT_FMT_ARG_POINTER: print_arg_pointer(s, parse->format, parse->len_as_arg ? len_arg : 1, - data, size, event, parse->arg); + data, size, event, parse->arg, raw); break; case PRINT_FMT_ARG_STRING: print_arg_string(s, parse->format, @@ -6697,7 +6723,7 @@ void *data, int size, struct tep_event *event) { while (parse) { - print_parse_data(parse, s, data, size, event); + print_parse_data(parse, s, data, size, event, false); parse = parse->next; } } @@ -7004,7 +7030,7 @@ int print_pretty = 1; if (raw || (event->flags & TEP_EVENT_FL_PRINTRAW)) - tep_print_fields(s, record->data, record->size, event); + print_selected_fields(s, record->data, record->size, event, 0, true); else { if (event->handler && !(event->flags & TEP_EVENT_FL_NOHANDLE))