Giter VIP home page Giter VIP logo

libxmlb's People

Contributors

aleksander0m avatar bobby285271 avatar chergert avatar dependabot[bot] avatar djcampello avatar eli-schwartz avatar fanc999-1 avatar hughsie avatar iainlane avatar jtojnar avatar lantw44 avatar mcrha avatar peigongdsd avatar probonopd avatar pwithnall avatar robert-ancell avatar sergio-costas avatar step-security-bot avatar sulincix avatar taozuhong avatar ximion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

libxmlb's Issues

Quebracabezas! Magic words for silo/string-table corruption

Hi!
I love this bug (it has cost me so much time and is so bizarre!). I was investigating some extremely odd AppStream behavior which I thought was a bug in my token processing code. Ultimately though it turned out that if you put in a bunch of magic words, the silo gets a corrupted string table and creates a completely weird DOM that kind of looks like memory was read at random.

I really hope others can reproduce this too!
The quickest way to reproduce this issue is to add these lines:

xb_builder_node_add_token (id, "paciencia");
xb_builder_node_add_token (id, "posta");
xb_builder_node_add_token (id, "prasentation");
xb_builder_node_add_token (id, "proyectos");
xb_builder_node_add_token (id, "puntuació");
xb_builder_node_add_token (id, "puzl");

xb_builder_node_add_token (id, "quebracabezas");
xb_builder_node_add_token (id, "raspakovnj");
xb_builder_node_add_token (id, "riječ");
xb_builder_node_add_token (id, "ripador");
xb_builder_node_add_token (id, "riverbero");

xb_builder_node_add_token (id, "sécurisé");
xb_builder_node_add_token (id, "seguretat");
xb_builder_node_add_token (id, "skanowani");
xb_builder_node_add_token (id, "slika");
xb_builder_node_add_token (id, "slika");
xb_builder_node_add_token (id, "slika");
xb_builder_node_add_token (id, "songtek");
xb_builder_node_add_token (id, "strategická");
xb_builder_node_add_token (id, "tahak");

xb_builder_node_add_token (id, "tallennin");
xb_builder_node_add_token (id, "teleporti");
xb_builder_node_add_token (id, "testu");
xb_builder_node_add_token (id, "torlő");
xb_builder_node_add_token (id, "traçar");
xb_builder_node_add_token (id, "udelat");
xb_builder_node_add_token (id, "vídeo");
xb_builder_node_add_token (id, "wiedergab");
xb_builder_node_add_token (id, "wtyczki");
xb_builder_node_add_token (id, "zvuk");

to line 2100 in the self test: https://github.com/hughsie/libxmlb/blob/main/src/xb-self-test.c#L2100

The test should then suddenly be unable to read the generated silo, failing with:

ERROR:../src/xb-self-test.c:2186:xb_builder_node_func: assertion failed ("<components origin=\"lvfs\">" "<component type=\"desktop\">" "<id>gimp.desktop</id>" "<icon type=\"stock\">dave</icon>" "<description>hello <em>world!</em>" "</description>" "</component>" "</components>" == xml):
("<components origin=\"lvfs\"><component type=\"desktop\"><id>gimp.desktop</id><icon type=\"stock\">dave</icon><description>hello <em>world!</em></description></component></components>" == "<onents in=\"\"><onent =\"top\"><con>.desktop</con>< =\"k\"></><ription>o <rigin>d!</rigin></ription></onent></onents>")

The weirdest thing is that if you remove some of these words, the test will suddenly pass again... I tried to remove as many terms as possible, and that's the smallest list that I could come up with.
@hughsie Do you have any idea what could be going on here? I suspect some unicode or integer overflow fun, but the former seems unlikely as even Japanese characters are processed just fine, and the latter just doesn't make much sense either.

snap failing to build

Noticed in the most recent snap build log that libxmlb is failing to build.

https://launchpadlibrarian.net/393706783/buildlog_snap_ubuntu_xenial_amd64_d2a8294152a080ac41aa11dcec60251a-xenial_BUILDING.txt.gz

[12/26] Compiling C object 'src/src@@xb-self-test@exe/xb-builder-source.c.o'.
../src/xb-machine.c: In function ‘xb_machine_parse_add_text_raw’:
../src/xb-machine.c:303:6: warning: implicit declaration of function ‘g_ascii_string_to_unsigned’ [-Wimplicit-function-declaration]
  if (g_ascii_string_to_unsigned (str, 10, 0, G_MAXUINT32, &val, NULL)) {
      ^
../src/xb-machine.c:303:2: warning: nested extern declaration of ‘g_ascii_string_to_unsigned’ [-Wnested-externs]
  if (g_ascii_string_to_unsigned (str, 10, 0, G_MAXUINT32, &val, NULL)) {
  ^
[13/26] Compiling C object 'src/src@@xb-self-test@exe/xb-builder.c.o'.
[14/26] Compiling C object 'src/src@@xb-tool@exe/xb-tool.c.o'.
[15/26] Compiling C object 'src/src@@xb-self-test@exe/xb-machine.c.o'.
[16/26] Compiling C object 'src/src@@xb-self-test@exe/xb-node.c.o'.
../src/xb-silo.c: In function ‘xb_silo_machine_func_number_cb’:
../src/xb-silo.c:1044:8: warning: implicit declaration of function ‘g_ascii_string_to_unsigned’ [-Wimplicit-function-declaration]
   if (!g_ascii_string_to_unsigned (xb_opcode_get_str (op1),
        ^
../src/xb-silo.c:1044:3: warning: nested extern declaration of ‘g_ascii_string_to_unsigned’ [-Wnested-externs]
   if (!g_ascii_string_to_unsigned (xb_opcode_get_str (op1),
   ^
[17/26] Linking target src/libxmlb.so.1.0.0.
[18/26] Compiling C object 'src/src@@xb-self-test@exe/xb-self-test.c.o'.
FAILED: cc  -o src/libxmlb.so.1.0.0 'src/src@@xmlb@sha/xb-builder.c.o' 'src/src@@xmlb@sha/xb-builder-node.c.o' 'src/src@@xmlb@sha/xb-builder-source.c.o' 'src/src@@xmlb@sha/xb-machine.c.o' 'src/src@@xmlb@sha/xb-opcode.c.o' 'src/src@@xmlb@sha/xb-node.c.o' 'src/src@@xmlb@sha/xb-silo.c.o' 'src/src@@xmlb@sha/xb-silo-export.c.o' 'src/src@@xmlb@sha/xb-silo-query.c.o' 'src/src@@xmlb@sha/xb-string.c.o' -I/build/fwupd/stage/include -L/build/fwupd/stage/lib -L/build/fwupd/stage/usr/lib -L/build/fwupd/stage/lib/x86_64-linux-gnu -L/build/fwupd/stage/usr/lib/x86_64-linux-gnu -Wl,--no-undefined -Wl,--as-needed -shared -fPIC -Wl,--start-group -Wl,-soname,libxmlb.so.1 -Wl,-z,relro -Wl,-z,now -Wl,--version-script,/build/fwupd/parts/libxmlb-dev/build/src/libxmlb.map -lgio-2.0 -lgobject-2.0 -lglib-2.0 -luuid -Wl,--end-group  
src/src@@xmlb@sha/xb-machine.c.o: In function `xb_machine_parse_add_text_raw':
/build/fwupd/parts/libxmlb-dev/build/snapbuild/../src/xb-machine.c:303: undefined reference to `g_ascii_string_to_unsigned'
src/src@@xmlb@sha/xb-machine.c.o: In function `xb_machine_func_eq_cb':
/build/fwupd/parts/libxmlb-dev/build/snapbuild/../src/xb-machine.c:889: undefined reference to `g_ascii_string_to_unsigned'
/build/fwupd/parts/libxmlb-dev/build/snapbuild/../src/xb-machine.c:905: undefined reference to `g_ascii_string_to_unsigned'
src/src@@xmlb@sha/xb-machine.c.o: In function `xb_machine_func_ne_cb':
/build/fwupd/parts/libxmlb-dev/build/snapbuild/../src/xb-machine.c:955: undefined reference to `g_ascii_string_to_unsigned'
src/src@@xmlb@sha/xb-machine.c.o: In function `xb_machine_func_lt_cb':
/build/fwupd/parts/libxmlb-dev/build/snapbuild/../src/xb-machine.c:1004: undefined reference to `g_ascii_string_to_unsigned'
src/src@@xmlb@sha/xb-machine.c.o:/build/fwupd/parts/libxmlb-dev/build/snapbuild/../src/xb-machine.c:1054: more undefined references to `g_ascii_string_to_unsigned' follow
collect2: error: ld returned 1 exit status
../src/xb-machine.c: In function ‘xb_machine_parse_add_text_raw’:
../src/xb-machine.c:303:6: warning: implicit declaration of function ‘g_ascii_string_to_unsigned’ [-Wimplicit-function-declaration]
  if (g_ascii_string_to_unsigned (str, 10, 0, G_MAXUINT32, &val, NULL)) {
      ^
../src/xb-machine.c:303:2: warning: nested extern declaration of ‘g_ascii_string_to_unsigned’ [-Wnested-externs]
  if (g_ascii_string_to_unsigned (str, 10, 0, G_MAXUINT32, &val, NULL)) {
  ^
ninja: build stopped: subcommand failed.

It's using libxmlb 0.1.2 currently not the subproject wip/subproject branch.

XbSilo xb_builder_node_unlink: assertion 'XB_IS_BUILDER_NODE (self)' failed

Hello,

On debian unstable (libxmlb 0.1.15) I get the following GLIB critical coming from libxmlb:

xb_builder_node_unlink: assertion 'XB_IS_BUILDER_NODE (self)' failed

This can be easily reproduce with the following commands:

$ appstreamcli convert /var/lib/app-info/yaml/ftp.be.debian.org_debian_dists_sid_main_dep11_Components-amd64.yml.gz /tmp/Components-amd64.xml
$ /usr/lib/x86_64-linux-gnu/xb-tool compile /tmp/Components-amd64.xmlb /tmp/Components-amd64.xml
(xb-tool:1900889): XbSilo-CRITICAL **: 19:03:14.826: xb_builder_node_unlink: assertion 'XB_IS_BUILDER_NODE (self)' failed
[...]

If somebody want to test and is not running a debian the yaml file can be downloaded at: http://ftp.debian.org/debian/dists/sid/main/dep11/Components-amd64.yml.gz

The original bug has been opened on the gnome-shell project, but the problem seems to be in libxmlb in the end.

[Feature Request] making lzma optional

with the recent xz CVE would it be possible to make lzma optional aswell in meson options? without knowing much of the source code it is perhaps to tightly integrated? but never hurts to ask.

0.3.13: meson fails

Looks like libxmlb is not ready for meson 1.2.x.

+ /usr/bin/meson setup --buildtype=plain --prefix=/usr --libdir=/usr/lib64 --libexecdir=/usr/libexec --bindir=/usr/bin --sbindir=/usr/sbin --includedir=/usr/include --datadir=/usr/share --mandir=/usr/share/man --infodir=/usr/share/info --localedir=/usr/share/locale --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/lib --wrap-mode=nodownload --auto-features=enabled . x86_64-redhat-linux-gnu -D gtkdoc=true -D tests=true
The Meson build system
Version: 1.2.1
Source dir: /home/tkloczko/rpmbuild/BUILD/libxmlb-0.3.13
Build dir: /home/tkloczko/rpmbuild/BUILD/libxmlb-0.3.13/x86_64-redhat-linux-gnu
Build type: native build
Project name: libxmlb
Project version: 0.3.13
C compiler for the host machine: /usr/bin/gcc (gcc 13.2.1 "gcc (GCC) 13.2.1 20230728 (Red Hat 13.2.1-1)")
C linker for the host machine: /usr/bin/gcc ld.bfd 2.40-13
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.9.5)
Run-time dependency gio-2.0 found: YES 2.77.2
Run-time dependency gio-unix-2.0 found: YES 2.77.2
Run-time dependency liblzma found: YES 5.4.4
Run-time dependency libzstd found: YES 1.5.5
Configuring config.h using configuration
Program python3 found: YES (/usr/bin/python3)
data/meson.build:2: WARNING: Project targets '>=0.47.0' but uses feature introduced in '0.50.0': install arg in configure_file.
Configuring libxmlb.test using configuration
Configuring xb-version.h using configuration

src/meson.build:75:11: ERROR: Unknown variable "release_args".

xb-self-test intermittently hang

The autopkgtests for libxmlb in Ubuntu failed a couple of times recently on amd64, and I managed to reproduce the failure by running the test in an infinite loop.

I'm attaching a full log. The test always appears to hang after ok 14 /libxmlb/builder{ensure}, and it prints Executing: libxmlb/libxmlb.test every 5 seconds until it times out after 5 minutes.

This is on Ubuntu groovy (amd64).

Converters don't nest - can't handle .yml.gz

libxmlb assumes the result of a gzipped file is XML, instead of checking the MIME type of the decompressed data. This means that .yml.gz files can't be handled by the converter.

XbBuilder could work without explicit xb_builder_add_locale() calls

Currently one must call xb_builder_add_locale() on an XbBuilder object to add system locales before using xb_builder_compile(), at least if one is using XB_BUILDER_COMPILE_FLAG_SINGLE_LANG. @pwithnall proposed an alternative way for it to work here:

Seems a bit odd that most instances of XbBuilder have to have this loop called on them, using the results of g_get_language_names(), before they will work properly.
Looking at the implementation, it basically checks any node which has an xml:lang attribute set. If the attribute value is not in the set of locales, that node is ignored.
Seems like it would be faster and more convenient to have an XbBuilder:use-system-locales property, which tells XbBuilder to check for set inclusion against g_get_language_names() internally. Then you don’t need to set it up, or copy a list of strings.

Export XML node without children in "collapsed" form?

I'm using xb_node_export() for a node that I know doesn't have any children, and the XML built is in the following format:

<node attr1="val1" attr2="val2"></node>

Is there any way to export the node so that it looks like this instead?

<node attr1="val1" attr2="val2" />

None of the XbNodeExportFlags seem to support this?

For some context, I'm using libxmlb to parse and generate XML transferred from/to the bootloader/programmer of a wwan device and it looks like the embedded XML parser is not very robust...

Errors compiling on Windows

Hi, I am trying to build libxmlb on Windows so that I can build AppStream and upgrade libadwaita to version 1.4. I have zstd, docs, and introspection turned off for the build.

(tar) Exporting libxmlb
Building project libxmlb (0.3.14)
The Meson build system
Version: 1.2.1
Source dir: C:\gtk-build\build\x64\release\libxmlb
Build dir: C:\gtk-build\build\x64\release\libxmlb\_gvsbuild-meson
Build type: native build
Project name: libxmlb
Project version: 0.3.14
C compiler for the host machine: cl (msvc 19.37.32822 "Microsoft (R) C/C++ Optimizing Compiler Version 19.37.32822 for x64")
C linker for the host machine: link link 14.37.32822.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wno-aggregate-return: NO 
Compiler for C supports arguments -Wunused: NO 
Compiler for C supports arguments -Warray-bounds: NO 
Compiler for C supports arguments -Wcast-align: NO 
Compiler for C supports arguments -Wclobbered: NO 
Compiler for C supports arguments -Wdeclaration-after-statement: NO 
Compiler for C supports arguments -Wduplicated-branches: NO 
Compiler for C supports arguments -Wduplicated-cond: NO 
Compiler for C supports arguments -Wempty-body: NO 
Compiler for C supports arguments -Wformat=2: NO 
Compiler for C supports arguments -Wformat-nonliteral: NO 
Compiler for C supports arguments -Wformat-security: NO 
Compiler for C supports arguments -Wformat-signedness: NO 
Compiler for C supports arguments -Wignored-qualifiers: NO 
Compiler for C supports arguments -Wimplicit-function-declaration: NO 
Compiler for C supports arguments -Wincompatible-pointer-types-discards-qualifiers: NO 
Compiler for C supports arguments -Winit-self: NO 
Compiler for C supports arguments -Wlogical-op: NO 
Compiler for C supports arguments -Wmissing-declarations: NO 
Compiler for C supports arguments -Wmissing-format-attribute: NO 
Compiler for C supports arguments -Wmissing-include-dirs: NO 
Compiler for C supports arguments -Wmissing-noreturn: NO 
Compiler for C supports arguments -Wmissing-parameter-type: NO 
Compiler for C supports arguments -Wmissing-prototypes: NO 
Compiler for C supports arguments -Wnested-externs: NO 
Compiler for C supports arguments -Wno-cast-function-type: NO 
Compiler for C supports arguments -Wno-error=cpp: NO 
Compiler for C supports arguments -Wno-unknown-pragmas: NO 
Compiler for C supports arguments -Wno-discarded-qualifiers: NO 
Compiler for C supports arguments -Wno-missing-field-initializers: NO 
Compiler for C supports arguments -Wno-strict-aliasing: NO 
Compiler for C supports arguments -Wno-suggest-attribute=format: NO 
Compiler for C supports arguments -Wno-unused-parameter: NO 
Compiler for C supports arguments -Wnull-dereference: NO 
Compiler for C supports arguments -Wold-style-definition: NO 
Compiler for C supports arguments -Woverride-init: NO 
Compiler for C supports arguments -Wpointer-arith: NO 
Compiler for C supports arguments -Wredundant-decls: NO 
Compiler for C supports arguments -Wreturn-type: NO 
Compiler for C supports arguments -Wshadow: NO 
Compiler for C supports arguments -Wsign-compare: NO 
Compiler for C supports arguments -Wstrict-aliasing: NO 
Compiler for C supports arguments -Wstrict-prototypes: NO 
Compiler for C supports arguments -Wswitch-default: NO 
Compiler for C supports arguments -Wtype-limits: NO 
Compiler for C supports arguments -Wundef: NO 
Compiler for C supports arguments -Wuninitialized: NO 
Compiler for C supports arguments -Wunused-but-set-variable: NO 
Compiler for C supports arguments -Wunused-variable: NO 
Compiler for C supports arguments -Wwrite-strings: NO 
Compiler for C supports link arguments -Wl,-z,relro: NO 
Compiler for C supports link arguments -Wl,-z,now: NO 
Found pkg-config: C:\gtk-build\gtk\x64\release\bin\pkg-config.EXE (2.0.3)
Run-time dependency gio-2.0 found: YES 2.78.0
Found CMake: C:\gtk-build\tools\cmake-3.27.5-windows-x86_64\bin\cmake.EXE (3.27.5)
Run-time dependency gio-unix-2.0 found: NO (tried pkgconfig and cmake)
Run-time dependency liblzma found: YES 5.4.4
Run-time dependency libzstd found: NO (tried pkgconfig and cmake)
Configuring config.h using configuration
Program python3 found: YES
Configuring xb-version.h using configuration
Compiler for C supports link arguments -Wl,--version-script,C:\gtk-build\build\x64\release\libxmlb\src/libxmlb.map: NO 
src\meson.build:105: WARNING: Project targets '>=0.47.0' but uses feature introduced in '0.50.0': install arg in configure_file.
Configuring xb-tool.1 using configuration
src\meson.build:214: WARNING: Project targets '>=0.47.0' but uses feature introduced in '0.56.0': meson.project_source_root.
src\meson.build:249: WARNING: Project targets '>=0.47.0' but uses feature introduced in '0.56.0': meson.project_source_root.
Build targets in project: 3
WARNING: Project specifies a minimum meson_version '>=0.47.0' but uses features which were added in newer versions:
 * 0.50.0: {'install arg in configure_file'}
 * 0.56.0: {'meson.project_source_root'}
NOTICE: Future-deprecated features used:
 * 0.64.0: {'copy arg in configure_file'}

libxmlb 0.3.14

  User defined options
    buildtype    : debugoptimized
    prefix       : C:\gtk-build\gtk\x64\release
    gtkdoc       : false
    introspection: False
    zstd         : false

Found ninja-1.11.1 at C:\gtk-build\tools\ninja-1.11.1\ninja.EXE
[1/45] Compiling C object src/xmlb-2.dll.p/xb-builder-fixup.c.obj
FAILED: src/xmlb-2.dll.p/xb-builder-fixup.c.obj
"cl" "-Isrc\xmlb-2.dll.p" "-Isrc" "-I..\src" "-I." "-I.." "-IC:/gtk-build/gtk/x64/release/bin/../include" "-IC:/gtk-build/gtk/x64/release/bin/../include/glib-
2.0" "-IC:/gtk-build/gtk/x64/release/bin/../lib/glib-2.0/include" "-IC:/gtk-build/gtk/x64/release/include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W3" "/O2
" "/Zi" "-fstack-protector-strong" "-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_46" "-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_58" "/Fdsrc\xmlb-2.dll.p\xb-builder-fixup.c.pdb" /Fosrc/xmlb-2.dll.p/xb-builder-fixup.c.obj "/c" ../src/xb-builder-fixup.c
cl : Command line warning D9002 : ignoring unknown option '-fstack-protector-strong'
../src/xb-builder-fixup.c(96): warning C4013: 'g_autoptr' undefined; assuming extern returning int
../src/xb-builder-fixup.c(96): error C2275: 'GString': expected an expression instead of a type
../src/xb-builder-fixup.c(96): error C2146: syntax error: missing ';' before identifier 'str'
../src/xb-builder-fixup.c(96): error C2065: 'str': undeclared identifier
../src/xb-builder-fixup.c(96): warning C4047: '=': 'int' differs in levels of indirection from 'GString *'
../src/xb-builder-fixup.c(102): error C2065: 'str': undeclared identifier
../src/xb-builder-fixup.c(102): warning C4047: 'function': 'GString *' differs in levels of indirection from 'int'
../src/xb-builder-fixup.c(102): warning C4024: 'g_string_append': different types for formal and actual parameter 1
../src/xb-builder-fixup.c(104): error C2065: 'str': undeclared identifier
../src/xb-builder-fixup.c(104): warning C4047: 'function': 'GString *' differs in levels of indirection from 'int'
../src/xb-builder-fixup.c(104): warning C4024: 'g_string_append_printf': different types for formal and actual parameter 1
../src/xb-builder-fixup.c(105): error C2065: 'str': undeclared identifier
../src/xb-builder-fixup.c(105): warning C4047: ':': 'int' differs in levels of indirection from 'gpointer'
[2/45] Compiling C object src/xmlb-2.dll.p/xb-builder-node.c.obj
FAILED: src/xmlb-2.dll.p/xb-builder-node.c.obj
"cl" "-Isrc\xmlb-2.dll.p" "-Isrc" "-I..\src" "-I." "-I.." "-IC:/gtk-build/gtk/x64/release/bin/../include" "-IC:/gtk-build/gtk/x64/release/bin/../include/glib-
2.0" "-IC:/gtk-build/gtk/x64/release/bin/../lib/glib-2.0/include" "-IC:/gtk-build/gtk/x64/release/include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W3" "/O2
" "/Zi" "-fstack-protector-strong" "-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_46" "-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_58" "/Fdsrc\xmlb-2.dll.p\xb-builder-node.c.pdb" /Fosrc/xmlb-2.dll.p/xb-builder-node.c.obj "/c" ../src/xb-builder-node.c
cl : Command line warning D9002 : ignoring unknown option '-fstack-protector-strong'
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(93): error C2085: 'xb_machine_parse_full': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(101): error C2085: 'xb_machine_run': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(107): error C2085: 'xb_machine_run_with_bindings': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(115): error C2085: 'xb_machine_add_opcode_fixup': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(121): error C2085: 'xb_machine_add_text_handler': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(126): error C2085: 'xb_machine_add_method': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(133): error C2085: 'xb_machine_add_operator': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(136): error C2085: 'xb_machine_opcode_func_init': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(139): error C2085: 'xb_machine_stack_pop': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(141): error C2085: 'xb_machine_stack_push': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(143): error C2085: 'xb_machine_stack_push_text': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(145): error C2085: 'xb_machine_stack_push_text_static': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(150): error C2085: 'xb_machine_stack_push_text_steal': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(152): error C2085: 'xb_machine_stack_push_integer': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(154): error C2085: 'xb_machine_set_stack_size': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(156): error C2085: 'xb_machine_get_stack_size': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(14): error C2085: 'xb_query_get_type': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(14): error C2085: 'XbQuery': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(14): error C2085: 'XbQueryClass': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(14): error C2143: syntax error: missing ';' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(14): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(14): error C2065: 'XbQueryClass': undeclared identifier
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(14): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(14): warning C4013: 'xb_query_get_type' undefined; assuming extern returning int
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo.h(110): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(50): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(52): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(55): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(55): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(55): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(59): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(59): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(59): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(62): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(62): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(62): warning C4142: 'guint': benign redefinition of type
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gtypes.h(61): note: see declaration of 'guint'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(62): error C2370: 'guint': redefinition; different storage class
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gtypes.h(61): note: see declaration of 'guint'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(62): error C2146: syntax error: missing ';' before identifier 'limit'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(62): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(66): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(66): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(66): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(69): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(69): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(69): error C2370: 'XbQueryFlags': redefinition; different storage class
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(46): note: see declaration of 'XbQueryFlags'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(69): error C2146: syntax error: missing ';' before identifier 'flags'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(69): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): warning C4142: 'guint': benign redefinition of type
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gtypes.h(61): note: see declaration of 'guint'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): error C2370: 'guint': redefinition; different storage class
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gtypes.h(61): note: see declaration of 'guint'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): error C2146: syntax error: missing ';' before identifier 'idx'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): error C2371: 'gchar': redefinition; different basic types
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gtypes.h(52): note: see declaration of 'gchar'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): warning C4228: nonstandard extension used: qualifiers after comma in declarator list are ignored   
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): error C2143: syntax error: missing ';' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): error C2371: 'GError': redefinition; different basic types
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gerror.h(43): note: see declaration of 'GError'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): error C2143: syntax error: missing ';' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(73): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): warning C4142: 'guint': benign redefinition of type
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gtypes.h(61): note: see declaration of 'guint'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): error C2370: 'guint': redefinition; different storage class
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gtypes.h(61): note: see declaration of 'guint'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): error C2146: syntax error: missing ';' before identifier 'idx'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): warning C4142: 'guint32': benign redefinition of type
C:\gtk-build\gtk\x64\release\lib\glib-2.0\include\glibconfig.h(56): note: see declaration of 'guint32'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): error C2370: 'guint32': redefinition; different storage class
C:\gtk-build\gtk\x64\release\lib\glib-2.0\include\glibconfig.h(56): note: see declaration of 'guint32'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): error C2146: syntax error: missing ';' before identifier 'val'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): error C2371: 'GError': redefinition; different basic types
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gerror.h(43): note: see declaration of 'GError'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): error C2143: syntax error: missing ';' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-query.h(76): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(19): error C2054: expected '(' to follow 'packed'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(34): error C2059: syntax error: '<parameter-list>'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(41): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(41): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(41): error C2370: 'XbSiloNodeFlag': redefinition; different storage class
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(17): note: see declaration of 'XbSiloNodeFlag'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(41): error C2146: syntax error: missing ';' before identifier 'flag'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(41): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(42): error C2054: expected '(' to follow 'flag'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(47): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(47): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(47): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(48): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(62): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(62): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(62): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(63): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(69): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(69): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(69): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(70): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(76): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(76): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(76): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(77): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(83): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(83): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(83): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(84): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(89): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): error C2371: 'guint8': redefinition; different basic types
C:\gtk-build\gtk\x64\release\lib\glib-2.0\include\glibconfig.h(45): note: see declaration of 'guint8'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): error C2146: syntax error: missing ';' before identifier 'idx'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): fatal error C1003: error count exceeds 100; stopping compilation
[3/45] Compiling C object src/xmlb-2.dll.p/xb-common.c.obj
FAILED: src/xmlb-2.dll.p/xb-common.c.obj
"cl" "-Isrc\xmlb-2.dll.p" "-Isrc" "-I..\src" "-I." "-I.." "-IC:/gtk-build/gtk/x64/release/bin/../include" "-IC:/gtk-build/gtk/x64/release/bin/../include/glib-
2.0" "-IC:/gtk-build/gtk/x64/release/bin/../lib/glib-2.0/include" "-IC:/gtk-build/gtk/x64/release/include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W3" "/O2
" "/Zi" "-fstack-protector-strong" "-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_46" "-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_58" "/Fdsrc\xmlb-2.dll.p\xb-common.c.pdb" /Fosrc/xmlb-2.dll.p/xb-common.c.obj "/c" ../src/xb-common.c
cl : Command line warning D9002 : ignoring unknown option '-fstack-protector-strong'
../src/xb-common.c(70): error C2065: 'g_autofree': undeclared identifier
../src/xb-common.c(70): error C2146: syntax error: missing ';' before identifier 'gchar'
../src/xb-common.c(70): error C2275: 'gchar': expected an expression instead of a type
../src/xb-common.c(70): error C2065: 'content_type': undeclared identifier
../src/xb-common.c(73): error C2065: 'content_type': undeclared identifier
../src/xb-common.c(73): warning C4047: '=': 'int' differs in levels of indirection from 'gchar *'
../src/xb-common.c(74): error C2065: 'content_type': undeclared identifier
../src/xb-common.c(74): warning C4047: 'function': 'const gchar *' differs in levels of indirection from 'int'
../src/xb-common.c(74): warning C4024: 'g_strstr_len': different types for formal and actual parameter 1
../src/xb-common.c(75): error C2065: 'content_type': undeclared identifier
../src/xb-common.c(75): warning C4047: 'function': 'const char *' differs in levels of indirection from 'int'
../src/xb-common.c(75): warning C4024: 'g_strcmp0': different types for formal and actual parameter 1
../src/xb-common.c(76): error C2065: 'content_type': undeclared identifier
../src/xb-common.c(76): warning C4047: 'function': 'const char *' differs in levels of indirection from 'int'
../src/xb-common.c(76): warning C4024: 'g_strcmp0': different types for formal and actual parameter 1
../src/xb-common.c(108): error C2065: 'content_type': undeclared identifier
../src/xb-common.c(108): warning C4047: ':': 'int' differs in levels of indirection from 'gpointer'
../src/xb-common.c(132): error C2065: 'g_autofree': undeclared identifier
../src/xb-common.c(132): error C2146: syntax error: missing ';' before identifier 'gchar'
../src/xb-common.c(132): error C2275: 'gchar': expected an expression instead of a type
../src/xb-common.c(132): error C2065: 'fn': undeclared identifier
../src/xb-common.c(142): error C2065: 'fn': undeclared identifier
../src/xb-common.c(142): warning C4047: 'function': 'const gchar *' differs in levels of indirection from 'int'
../src/xb-common.c(142): warning C4024: 'g_file_set_contents_full': different types for formal and actual parameter 1
../src/xb-common.c(142): warning C4996: 'g_file_set_contents_full': is not available before 2.66
[4/45] Compiling C object src/xmlb-2.dll.p/xb-builder-source.c.obj
FAILED: src/xmlb-2.dll.p/xb-builder-source.c.obj
"cl" "-Isrc\xmlb-2.dll.p" "-Isrc" "-I..\src" "-I." "-I.." "-IC:/gtk-build/gtk/x64/release/bin/../include" "-IC:/gtk-build/gtk/x64/release/bin/../include/glib-
2.0" "-IC:/gtk-build/gtk/x64/release/bin/../lib/glib-2.0/include" "-IC:/gtk-build/gtk/x64/release/include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W3" "/O2
" "/Zi" "-fstack-protector-strong" "-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_46" "-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_58" "/Fdsrc\xmlb-2.dll.p\xb-builder-source.c.pdb" /Fosrc/xmlb-2.dll.p/xb-builder-source.c.obj "/c" ../src/xb-builder-source.c
cl : Command line warning D9002 : ignoring unknown option '-fstack-protector-strong'
../src/xb-builder-source.c(82): error C2065: 'g_autofree': undeclared identifier
../src/xb-builder-source.c(82): error C2146: syntax error: missing ';' before identifier 'gchar'
../src/xb-builder-source.c(82): error C2275: 'gchar': expected an expression instead of a type
../src/xb-builder-source.c(82): error C2065: 'fn': undeclared identifier
../src/xb-builder-source.c(83): warning C4013: 'g_autoptr' undefined; assuming extern returning int
../src/xb-builder-source.c(83): error C2275: 'GFileInfo': expected an expression instead of a type
../src/xb-builder-source.c(83): error C2146: syntax error: missing ';' before identifier 'fileinfo'
../src/xb-builder-source.c(83): error C2065: 'fileinfo': undeclared identifier
../src/xb-builder-source.c(83): warning C4047: '=': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source.c(84): error C2275: 'GString': expected an expression instead of a type
../src/xb-builder-source.c(84): error C2146: syntax error: missing ';' before identifier 'guid'
../src/xb-builder-source.c(84): error C2065: 'guid': undeclared identifier
../src/xb-builder-source.c(84): warning C4047: '=': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source.c(93): error C2065: 'fileinfo': undeclared identifier
../src/xb-builder-source.c(93): warning C4047: '=': 'int' differs in levels of indirection from 'GFileInfo *'
../src/xb-builder-source.c(100): error C2065: 'fileinfo': undeclared identifier
../src/xb-builder-source.c(100): warning C4047: '==': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source.c(104): error C2065: 'fn': undeclared identifier
../src/xb-builder-source.c(104): warning C4047: '=': 'int' differs in levels of indirection from 'char *'
../src/xb-builder-source.c(105): error C2065: 'guid': undeclared identifier
../src/xb-builder-source.c(105): error C2065: 'fn': undeclared identifier
../src/xb-builder-source.c(105): warning C4047: 'function': 'const gchar *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(105): warning C4024: 'g_string_new': different types for formal and actual parameter 1
../src/xb-builder-source.c(105): warning C4047: '=': 'int' differs in levels of indirection from 'GString *'
../src/xb-builder-source.c(106): error C2065: 'fileinfo': undeclared identifier
../src/xb-builder-source.c(106): warning C4047: 'function': 'GFileInfo *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(106): warning C4024: 'g_file_info_get_attribute_uint64': different types for formal and actual parameter 1
../src/xb-builder-source.c(108): error C2065: 'guid': undeclared identifier
../src/xb-builder-source.c(108): warning C4047: 'function': 'GString *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(108): warning C4024: 'g_string_append_printf': different types for formal and actual parameter 1
../src/xb-builder-source.c(109): error C2065: 'fileinfo': undeclared identifier
../src/xb-builder-source.c(109): warning C4047: 'function': 'GFileInfo *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(109): warning C4024: 'g_file_info_get_attribute_uint32': different types for formal and actual parameter 1
../src/xb-builder-source.c(111): error C2065: 'guid': undeclared identifier
../src/xb-builder-source.c(111): warning C4047: 'function': 'GString *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(111): warning C4024: 'g_string_append_printf': different types for formal and actual parameter 1
../src/xb-builder-source.c(112): error C2065: 'guid': undeclared identifier
../src/xb-builder-source.c(112): warning C4047: ':': 'int' differs in levels of indirection from 'gpointer'
../src/xb-builder-source.c(116): error C2065: 'fileinfo': undeclared identifier
../src/xb-builder-source.c(116): warning C4047: 'function': 'GFileInfo *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(116): warning C4024: 'g_file_info_get_attribute_string': different types for formal and actual parameter 1
../src/xb-builder-source.c(187): error C2275: 'GBytes': expected an expression instead of a type
../src/xb-builder-source.c(187): error C2146: syntax error: missing ';' before identifier 'blob'
../src/xb-builder-source.c(187): error C2065: 'blob': undeclared identifier
../src/xb-builder-source.c(187): warning C4047: '=': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source.c(188): error C2275: 'GChecksum': expected an expression instead of a type
../src/xb-builder-source.c(188): error C2146: syntax error: missing ';' before identifier 'csum'
../src/xb-builder-source.c(188): error C2065: 'csum': undeclared identifier
../src/xb-builder-source.c(188): warning C4047: '=': 'int' differs in levels of indirection from 'GChecksum *'
../src/xb-builder-source.c(196): error C2065: 'csum': undeclared identifier
../src/xb-builder-source.c(196): warning C4047: 'function': 'GChecksum *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(196): warning C4024: 'g_checksum_update': different types for formal and actual parameter 1
../src/xb-builder-source.c(197): error C2065: 'csum': undeclared identifier
../src/xb-builder-source.c(197): warning C4047: 'function': 'GChecksum *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(197): warning C4024: 'g_checksum_get_string': different types for formal and actual parameter 1
../src/xb-builder-source.c(200): error C2065: 'blob': undeclared identifier
../src/xb-builder-source.c(200): warning C4047: '=': 'int' differs in levels of indirection from 'GBytes *'
../src/xb-builder-source.c(201): error C2065: 'blob': undeclared identifier
../src/xb-builder-source.c(201): warning C4047: 'function': 'GBytes *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(201): warning C4024: 'g_memory_input_stream_new_from_bytes': different types for formal and actual parameter 1
../src/xb-builder-source.c(230): error C2275: 'GChecksum': expected an expression instead of a type
../src/xb-builder-source.c(230): error C2146: syntax error: missing ';' before identifier 'csum'
../src/xb-builder-source.c(230): error C2065: 'csum': undeclared identifier
../src/xb-builder-source.c(230): warning C4047: '=': 'int' differs in levels of indirection from 'GChecksum *'
../src/xb-builder-source.c(237): error C2065: 'csum': undeclared identifier
../src/xb-builder-source.c(237): warning C4047: 'function': 'GChecksum *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(237): warning C4024: 'g_checksum_update': different types for formal and actual parameter 1
../src/xb-builder-source.c(240): error C2065: 'csum': undeclared identifier
../src/xb-builder-source.c(240): warning C4047: 'function': 'GChecksum *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(240): warning C4024: 'g_checksum_get_string': different types for formal and actual parameter 1
../src/xb-builder-source.c(280): warning C4013: 'g_auto' undefined; assuming extern returning int
../src/xb-builder-source.c(280): error C2275: 'GStrv': expected an expression instead of a type
../src/xb-builder-source.c(280): error C2146: syntax error: missing ';' before identifier 'split'
../src/xb-builder-source.c(280): error C2065: 'split': undeclared identifier
../src/xb-builder-source.c(280): warning C4047: '=': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source.c(287): error C2065: 'split': undeclared identifier
../src/xb-builder-source.c(287): warning C4047: '=': 'int' differs in levels of indirection from 'gchar **'
../src/xb-builder-source.c(288): error C2065: 'split': undeclared identifier
../src/xb-builder-source.c(288): error C2109: subscript requires array or pointer type
../src/xb-builder-source.c(291): error C2065: 'split': undeclared identifier
../src/xb-builder-source.c(291): error C2109: subscript requires array or pointer type
../src/xb-builder-source.c(291): error C2198: 'g_strdup': too few arguments for call
../src/xb-builder-source.c(383): error C2275: 'GString': expected an expression instead of a type
../src/xb-builder-source.c(383): error C2146: syntax error: missing ';' before identifier 'str'
../src/xb-builder-source.c(383): error C2065: 'str': undeclared identifier
../src/xb-builder-source.c(383): warning C4047: '=': 'int' differs in levels of indirection from 'GString *'
../src/xb-builder-source.c(390): error C2065: 'g_autofree': undeclared identifier
../src/xb-builder-source.c(390): error C2146: syntax error: missing ';' before identifier 'gchar'
../src/xb-builder-source.c(390): error C2275: 'gchar': expected an expression instead of a type
../src/xb-builder-source.c(390): error C2065: 'tmp': undeclared identifier
../src/xb-builder-source.c(391): error C2065: 'str': undeclared identifier
../src/xb-builder-source.c(391): warning C4047: 'function': 'GString *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(391): warning C4024: 'g_string_append_printf': different types for formal and actual parameter 1
../src/xb-builder-source.c(391): error C2065: 'tmp': undeclared identifier
../src/xb-builder-source.c(401): error C2065: 'str': undeclared identifier
../src/xb-builder-source.c(401): warning C4022: 'xb_builder_node_traverse': pointer mismatch for actual parameter 6
../src/xb-builder-source.c(406): error C2065: 'str': undeclared identifier
../src/xb-builder-source.c(406): warning C4047: 'function': 'GString *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(406): warning C4024: 'g_string_append_printf': different types for formal and actual parameter 1
../src/xb-builder-source.c(407): error C2065: 'str': undeclared identifier
../src/xb-builder-source.c(407): warning C4047: ':': 'int' differs in levels of indirection from 'gpointer'
../src/xb-builder-source.c(439): error C2065: 'g_autofree': undeclared identifier
../src/xb-builder-source.c(439): error C2146: syntax error: missing ';' before identifier 'gchar'
../src/xb-builder-source.c(439): error C2275: 'gchar': expected an expression instead of a type
../src/xb-builder-source.c(439): error C2065: 'basename': undeclared identifier
../src/xb-builder-source.c(454): error C2065: 'basename': undeclared identifier
../src/xb-builder-source.c(454): warning C4047: '=': 'int' differs in levels of indirection from 'char *'
../src/xb-builder-source.c(459): error C2065: 'g_autofree': undeclared identifier
../src/xb-builder-source.c(459): error C2146: syntax error: missing ';' before identifier 'gchar'
../src/xb-builder-source.c(459): error C2275: 'gchar': expected an expression instead of a type
../src/xb-builder-source.c(459): error C2065: 'content_type': undeclared identifier
../src/xb-builder-source.c(460): error C2275: 'GInputStream': expected an expression instead of a type
../src/xb-builder-source.c(460): error C2146: syntax error: missing ';' before identifier 'istream_tmp'
../src/xb-builder-source.c(460): error C2065: 'istream_tmp': undeclared identifier
../src/xb-builder-source.c(460): warning C4047: '=': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source.c(461): error C2275: 'XbBuilderSourceCtx': expected an expression instead of a type
../src/xb-builder-source.c(461): error C2146: syntax error: missing ';' before identifier 'ctx'
../src/xb-builder-source.c(461): error C2065: 'ctx': undeclared identifier
../src/xb-builder-source.c(461): warning C4047: '=': 'int' differs in levels of indirection from 'XbBuilderSourceCtx *'
../src/xb-builder-source.c(464): error C2065: 'ctx': undeclared identifier
../src/xb-builder-source.c(464): warning C4047: 'function': 'XbBuilderSourceCtx *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(464): warning C4024: 'xb_builder_source_ctx_set_filename': different types for formal and actual parameter 1
../src/xb-builder-source.c(464): error C2065: 'basename': undeclared identifier
../src/xb-builder-source.c(464): warning C4047: 'function': 'const gchar *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(464): warning C4024: 'xb_builder_source_ctx_set_filename': different types for formal and actual parameter 2
../src/xb-builder-source.c(465): error C2065: 'content_type': undeclared identifier
../src/xb-builder-source.c(465): error C2065: 'ctx': undeclared identifier
../src/xb-builder-source.c(465): warning C4047: 'function': 'XbBuilderSourceCtx *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(465): warning C4024: 'xb_builder_source_ctx_get_content_type': different types for formal and actual parameter 1
../src/xb-builder-source.c(465): warning C4047: '=': 'int' differs in levels of indirection from 'gchar *'
../src/xb-builder-source.c(466): error C2065: 'content_type': undeclared identifier
../src/xb-builder-source.c(466): warning C4047: '==': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source.c(468): error C2065: 'content_type': undeclared identifier
../src/xb-builder-source.c(468): warning C4047: 'function': 'const char *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(468): warning C4024: 'g_strcmp0': different types for formal and actual parameter 1
../src/xb-builder-source.c(472): error C2065: 'content_type': undeclared identifier
../src/xb-builder-source.c(472): warning C4047: 'function': 'const gchar *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(472): warning C4024: 'xb_builder_source_get_adapter_by_mime': different types for formal and actual parameter 2
../src/xb-builder-source.c(478): error C2065: 'content_type': undeclared identifier
../src/xb-builder-source.c(481): error C2065: 'istream_tmp': undeclared identifier
../src/xb-builder-source.c(481): error C2065: 'ctx': undeclared identifier
../src/xb-builder-source.c(481): warning C4047: 'function': 'XbBuilderSourceCtx *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(481): warning C4024: 'function through pointer': different types for formal and actual parameter 2
../src/xb-builder-source.c(481): warning C4047: '=': 'int' differs in levels of indirection from 'GInputStream *'
../src/xb-builder-source.c(482): error C2065: 'istream_tmp': undeclared identifier
../src/xb-builder-source.c(482): warning C4047: '==': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source.c(484): error C2065: 'basename': undeclared identifier
../src/xb-builder-source.c(484): warning C4047: 'function': 'gchar *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(484): warning C4024: 'xb_builder_source_remove_last_extension': different types for formal and actual parameter 1
../src/xb-builder-source.c(485): error C2065: 'istream_tmp': undeclared identifier
../src/xb-builder-source.c(485): warning C4047: '=': 'GInputStream *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(485): warning C4312: 'type cast': conversion from 'int' to 'GObject *' of greater size
../src/xb-builder-source.c(523): error C2275: 'GConverter': expected an expression instead of a type
../src/xb-builder-source.c(523): error C2146: syntax error: missing ';' before identifier 'conv'
../src/xb-builder-source.c(523): error C2065: 'conv': undeclared identifier
../src/xb-builder-source.c(523): warning C4047: '=': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source.c(524): error C2065: 'conv': undeclared identifier
../src/xb-builder-source.c(524): warning C4047: '=': 'int' differs in levels of indirection from 'GConverter *'
../src/xb-builder-source.c(525): error C2065: 'conv': undeclared identifier
../src/xb-builder-source.c(525): warning C4047: 'function': 'GConverter *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(525): warning C4024: 'g_converter_input_stream_new': different types for formal and actual parameter 2
../src/xb-builder-source.c(536): error C2275: 'GConverter': expected an expression instead of a type
../src/xb-builder-source.c(536): error C2146: syntax error: missing ';' before identifier 'conv'
../src/xb-builder-source.c(536): error C2065: 'conv': undeclared identifier
../src/xb-builder-source.c(536): warning C4047: '=': 'int' differs in levels of indirection from 'GConverter *'
../src/xb-builder-source.c(537): error C2065: 'conv': undeclared identifier
../src/xb-builder-source.c(537): warning C4047: 'function': 'GConverter *' differs in levels of indirection from 'int'
../src/xb-builder-source.c(537): warning C4024: 'g_converter_input_stream_new': different types for formal and actual parameter 2
[5/45] Compiling C object src/xmlb-2.dll.p/xb-builder-source-ctx.c.obj
FAILED: src/xmlb-2.dll.p/xb-builder-source-ctx.c.obj
"cl" "-Isrc\xmlb-2.dll.p" "-Isrc" "-I..\src" "-I." "-I.." "-IC:/gtk-build/gtk/x64/release/bin/../include" "-IC:/gtk-build/gtk/x64/release/bin/../include/glib-
2.0" "-IC:/gtk-build/gtk/x64/release/bin/../lib/glib-2.0/include" "-IC:/gtk-build/gtk/x64/release/include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W3" "/O2
" "/Zi" "-fstack-protector-strong" "-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_46" "-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_58" "/Fdsrc\xmlb-2.dll.p\xb-builder-source-ctx.c.pdb" /Fosrc/xmlb-2.dll.p/xb-builder-source-ctx.c.obj "/c" ../src/xb-builder-source-ctx.c
cl : Command line warning D9002 : ignoring unknown option '-fstack-protector-strong'
../src/xb-builder-source-ctx.c(51): error C2065: 'g_autofree': undeclared identifier
../src/xb-builder-source-ctx.c(51): error C2146: syntax error: missing ';' before identifier 'guint8'
../src/xb-builder-source-ctx.c(51): error C2275: 'guint8': expected an expression instead of a type
../src/xb-builder-source-ctx.c(51): error C2065: 'tmp': undeclared identifier
../src/xb-builder-source-ctx.c(52): warning C4013: 'g_autoptr' undefined; assuming extern returning int
../src/xb-builder-source-ctx.c(52): error C2275: 'GByteArray': expected an expression instead of a type
../src/xb-builder-source-ctx.c(52): error C2146: syntax error: missing ';' before identifier 'buf'
../src/xb-builder-source-ctx.c(52): error C2065: 'buf': undeclared identifier
../src/xb-builder-source-ctx.c(52): warning C4047: '=': 'int' differs in levels of indirection from 'GByteArray *'
../src/xb-builder-source-ctx.c(60): error C2065: 'tmp': undeclared identifier
../src/xb-builder-source-ctx.c(60): warning C4047: '=': 'int' differs in levels of indirection from 'gpointer'
../src/xb-builder-source-ctx.c(63): error C2065: 'tmp': undeclared identifier
../src/xb-builder-source-ctx.c(63): warning C4022: 'g_input_stream_read': pointer mismatch for actual parameter 2
../src/xb-builder-source-ctx.c(68): error C2065: 'buf': undeclared identifier
../src/xb-builder-source-ctx.c(68): warning C4047: 'function': 'GByteArray *' differs in levels of indirection from 'int'
../src/xb-builder-source-ctx.c(68): warning C4024: 'g_byte_array_append': different types for formal and actual parameter 1
../src/xb-builder-source-ctx.c(68): error C2065: 'tmp': undeclared identifier
../src/xb-builder-source-ctx.c(68): warning C4047: 'function': 'const guint8 *' differs in levels of indirection from 'int'
../src/xb-builder-source-ctx.c(68): warning C4024: 'g_byte_array_append': different types for formal and actual parameter 2
../src/xb-builder-source-ctx.c(68): warning C4244: 'function': conversion from 'gssize' to 'guint', possible loss of data
../src/xb-builder-source-ctx.c(69): error C2065: 'buf': undeclared identifier
../src/xb-builder-source-ctx.c(69): error C2223: left of '->len' must point to struct/union
../src/xb-builder-source-ctx.c(74): error C2065: 'buf': undeclared identifier
../src/xb-builder-source-ctx.c(74): error C2223: left of '->len' must point to struct/union
../src/xb-builder-source-ctx.c(79): error C2065: 'buf': undeclared identifier
../src/xb-builder-source-ctx.c(79): warning C4047: ':': 'int' differs in levels of indirection from 'gpointer'
../src/xb-builder-source-ctx.c(110): error C2275: 'GMappedFile': expected an expression instead of a type
../src/xb-builder-source-ctx.c(110): error C2146: syntax error: missing ';' before identifier 'mapped_file'
../src/xb-builder-source-ctx.c(110): error C2065: 'mapped_file': undeclared identifier
../src/xb-builder-source-ctx.c(110): warning C4047: '=': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source-ctx.c(111): error C2065: 'g_autofree': undeclared identifier
../src/xb-builder-source-ctx.c(111): error C2146: syntax error: missing ';' before identifier 'gchar'
../src/xb-builder-source-ctx.c(111): error C2275: 'gchar': expected an expression instead of a type
../src/xb-builder-source-ctx.c(111): error C2065: 'filename': undeclared identifier
../src/xb-builder-source-ctx.c(113): error C2065: 'mapped_file': undeclared identifier
../src/xb-builder-source-ctx.c(113): error C2065: 'filename': undeclared identifier
../src/xb-builder-source-ctx.c(113): warning C4047: 'function': 'const gchar *' differs in levels of indirection from 'int'
../src/xb-builder-source-ctx.c(113): warning C4024: 'g_mapped_file_new': different types for formal and actual parameter 1
../src/xb-builder-source-ctx.c(113): warning C4047: '=': 'int' differs in levels of indirection from 'GMappedFile *'
../src/xb-builder-source-ctx.c(114): error C2065: 'mapped_file': undeclared identifier
../src/xb-builder-source-ctx.c(114): warning C4047: '!=': 'int' differs in levels of indirection from 'void *'
../src/xb-builder-source-ctx.c(115): error C2065: 'mapped_file': undeclared identifier
../src/xb-builder-source-ctx.c(115): warning C4047: 'function': 'GMappedFile *' differs in levels of indirection from 'int'
../src/xb-builder-source-ctx.c(115): warning C4024: 'g_mapped_file_get_bytes': different types for formal and actual parameter 1
[6/45] Compiling C object src/xmlb-2.dll.p/xb-builder.c.obj
FAILED: src/xmlb-2.dll.p/xb-builder.c.obj
"cl" "-Isrc\xmlb-2.dll.p" "-Isrc" "-I..\src" "-I." "-I.." "-IC:/gtk-build/gtk/x64/release/bin/../include" "-IC:/gtk-build/gtk/x64/release/bin/../include/glib-
2.0" "-IC:/gtk-build/gtk/x64/release/bin/../lib/glib-2.0/include" "-IC:/gtk-build/gtk/x64/release/include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W3" "/O2
" "/Zi" "-fstack-protector-strong" "-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_46" "-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_58" "/Fdsrc\xmlb-2.dll.p\xb-builder.c.pdb" /Fosrc/xmlb-2.dll.p/xb-builder.c.obj "/c" ../src/xb-builder.c
cl : Command line warning D9002 : ignoring unknown option '-fstack-protector-strong'
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(93): error C2085: 'xb_machine_parse_full': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(101): error C2085: 'xb_machine_run': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(107): error C2085: 'xb_machine_run_with_bindings': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(115): error C2085: 'xb_machine_add_opcode_fixup': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(121): error C2085: 'xb_machine_add_text_handler': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(126): error C2085: 'xb_machine_add_method': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(133): error C2085: 'xb_machine_add_operator': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(136): error C2085: 'xb_machine_opcode_func_init': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(139): error C2085: 'xb_machine_stack_pop': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(141): error C2085: 'xb_machine_stack_push': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(143): error C2085: 'xb_machine_stack_push_text': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(145): error C2085: 'xb_machine_stack_push_text_static': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(150): error C2085: 'xb_machine_stack_push_text_steal': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(152): error C2085: 'xb_machine_stack_push_integer': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(154): error C2085: 'xb_machine_set_stack_size': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-machine.h(156): error C2085: 'xb_machine_get_stack_size': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(17): error C2085: 'XbSiloNodeFlag': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(19): error C2085: 'packed': not in formal parameter list
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(19): error C2143: syntax error: missing ';' before '{'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(20): error C2143: syntax error: missing ';' before ':'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(21): error C2143: syntax error: missing ';' before ':'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(26): error C2082: redefinition of formal parameter 'text'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(34): error C2054: expected '(' to follow 'packed'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(41): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(41): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(41): error C2146: syntax error: missing ';' before identifier 'flag'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(41): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(42): error C2054: expected '(' to follow 'flag'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(47): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(47): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(47): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(48): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(62): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(62): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(62): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(63): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(69): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(69): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(69): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(70): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(76): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(76): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(76): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(77): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(83): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(83): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(83): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(84): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(89): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): error C2371: 'guint8': redefinition; different basic types
C:\gtk-build\gtk\x64\release\lib\glib-2.0\include\glibconfig.h(45): note: see declaration of 'guint8'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): error C2146: syntax error: missing ';' before identifier 'idx'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(90): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(91): error C2054: expected '(' to follow 'idx'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(99): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(99): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(99): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(100): error C2054: expected '(' to follow 'self'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(106): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(106): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(106): warning C4142: 'guint': benign redefinition of type
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gtypes.h(61): note: see declaration of 'guint'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(106): error C2370: 'guint': redefinition; different storage class
C:\gtk-build\gtk\x64\release\include\glib-2.0\glib/gtypes.h(61): note: see declaration of 'guint'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(106): error C2146: syntax error: missing ';' before identifier 'idx'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(106): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-node.h(107): error C2054: expected '(' to follow 'idx'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(30): error C2059: syntax error: '<parameter-list>'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(39): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(39): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(39): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(41): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(41): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(41): error C2371: 'guint8': redefinition; different basic types
C:\gtk-build\gtk\x64\release\lib\glib-2.0\include\glibconfig.h(45): note: see declaration of 'guint8'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(41): warning C4228: nonstandard extension used: qualifiers after comma in declarator list are ignored
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(41): error C2143: syntax error: missing ';' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(41): error C2371: 'gsize': redefinition; different basic types
C:\gtk-build\gtk\x64\release\lib\glib-2.0\include\glibconfig.h(82): note: see declaration of 'gsize'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(41): error C2146: syntax error: missing ';' before identifier 'bufsz'
C:\gtk-build\build\x64\release\libxmlb\src\xb-string-private.h(41): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(19): error C2059: syntax error: '<parameter-list>'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(33): error C2061: syntax error: identifier 'XbSiloNode'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(35): error C2059: syntax error: '}'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(43): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(52): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(52): error C2081: 'XbSiloNode': name in formal parameter list illegal
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(52): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(52): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(53): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(55): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(56): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(56): error C2081: 'XbSiloNode': name in formal parameter list illegal
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(56): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(56): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(57): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(58): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(58): error C2081: 'XbSiloNode': name in formal parameter list illegal
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(58): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(58): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(59): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(60): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(60): error C2081: 'XbSiloNode': name in formal parameter list illegal
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(60): error C2143: syntax error: missing '{' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(60): error C2059: syntax error: ')'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(62): error C2143: syntax error: missing ')' before '*'
C:\gtk-build\build\x64\release\libxmlb\src\xb-silo-private.h(62): fatal error C1003: error count exceeds 100; stopping compilation
ninja: build stopped: subcommand failed.

Test suite is failing on RISC architectures

Since libxmlb was recently uploaded to Debian it gets tested on a variety of weird ports.

sparc64, riscv64, hppa and hurd-i386 are all failing.

sparc64 and risv64 are failing like this:

query[last]: 33.236ms
query[all]: 21.513ms
query[x5000]: 6421.991ms
query[x5000]: 7262.447ms
(/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu/src/xb-self-test:19570): XbSilo-DEBUG: 03:12:44.900: ignoring index: no results for XPath query 'components/component/id[text()='dave']'
(/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu/src/xb-self-test:19570): XbSilo-DEBUG: 03:12:44.901: ignoring index: failed to process components/component/DAVE: element name DAVE is unknown in silo
create index: 81.751ms
-------

Full log written to /<<PKGBUILDDIR>>/obj-riscv64-linux-gnu/meson-logs/testlog.txt
FAILED: meson-test 
/usr/bin/meson test --no-rebuild --print-errorlogs
ninja: build stopped: subcommand failed.
dh_auto_test: cd obj-riscv64-linux-gnu && LC_ALL=C.UTF-8 MESON_TESTTHREADS=1 ninja test returned exit code 1
make: *** [debian/rules:4: build-arch] Error 1

Full log riscv64: https://buildd.debian.org/status/fetch.php?pkg=libxmlb&arch=riscv64&ver=0.1.6-1&stamp=1549509209&raw=0
Full log sparc64: https://buildd.debian.org/status/fetch.php?pkg=libxmlb&arch=sparc64&ver=0.1.6-1&stamp=1549495495&raw=0

hurd-i386 fails like this:

(/<<PKGBUILDDIR>>/obj-i686-gnu/src/xb-self-test:4512): XbSilo-DEBUG: 22:50:43.845: 0.00ms      save file
(/<<PKGBUILDDIR>>/obj-i686-gnu/src/xb-self-test:4512): XbSilo-DEBUG: 22:50:43.845: 0.00ms      parse blob
(/<<PKGBUILDDIR>>/obj-i686-gnu/src/xb-self-test:4512): XbSilo-DEBUG: 22:50:43.845: 0.00ms      loaded file
--- stderr ---
**
ERROR:../src/xb-self-test.c:546:xb_builder_ensure_func: 'xb_silo_is_valid (silo)' should be FALSE
-------

Full log written to /<<PKGBUILDDIR>>/obj-i686-gnu/meson-logs/testlog.txt
FAILED: meson-test 
/usr/bin/meson test --no-rebuild --print-errorlogs
ninja: build stopped: subcommand failed.
dh_auto_test: cd obj-i686-gnu && LC_ALL=C.UTF-8 MESON_TESTTHREADS=1 ninja test returned exit code 1
debian/rules:4: recipe for target 'build-arch' failed
make: *** [build-arch] Error 1

Full log: https://buildd.debian.org/status/fetch.php?pkg=libxmlb&arch=hurd-i386&ver=0.1.6-1&stamp=1549493454&raw=0

hppa failed by the build process dying (might not be relevant)

/libxmlb/speed: (/<<PKGBUILDDIR>>/obj-hppa-linux-gnu/src/xb-self-test:23444): XbSilo-DEBUG: 04:31:36.218: compiling a83a3acf09667acb3caa53256b43e8cf308c4d1c?
import+save: 7747.216ms
mmap load: 0.820ms
query[first]: 0.194ms
query[last]: 34.237ms
query[all]: 35.710ms
query[x5000]: 5974.778ms
-------

Full log written to /<<PKGBUILDDIR>>/obj-hppa-linux-gnu/meson-logs/testlog.txt
FAILED: meson-test 
/usr/bin/meson test --no-rebuild --print-errorlogs
ninja: build stopped: subcommand failed.
dh_auto_test: cd obj-hppa-linux-gnu && LC_ALL=C.UTF-8 MESON_TESTTHREADS=1 ninja test returned exit code 1
make: *** [debian/rules:4: build-arch] Error 1

Full log: https://buildd.debian.org/status/fetch.php?pkg=libxmlb&arch=hppa&ver=0.1.6-1&stamp=1549513937&raw=0

Add a way to return an empty resultset without using G_IO_ERROR_NOT_FOUND

Currently, libxmlb queries will set the error G_IO_ERROR_NOT_FOUND if they find no matching elements. A lot of queries will often return no results (that’s just the way XML is), so this code path is hit often. If a lot of queries are run quickly (for example, when loading gnome-software), the cost of allocating a GError to indicate an empty resultset becomes measurable.

It would be nice if libxmlb would provide an alternate codepath which indicates an empty resultset some other way, without needing an allocation.

This might be possible without any new API: the documentation for the xb_silo_query() functions already says they return NULL if unfound, so callers should already be handling that. If that’s acceptable, we could just basically remove the g_set_error (G_IO_ERROR_NOT_FOUND) calls.

See https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/1749 for some more context.

Tag mismatch errors in some special XML with comments

Hey! Looks like libxmlb is failing to process an XML file that contains some initial comments in the following format:

<?xml version="1.0" ?>
<data>
  <!--NOTE: This is an ** Autogenerated file **-->
  <!--BlockSize = 256 KB-->
  <!--PageSize  = 4 KB-->
  <!--NUM_PARTITION_SECTORS  = 131072-->
  <program />
</data>

Not sure if this is because the XML comments are malformed, or because the parser cannot process them correctly.
I'm attaching here a simple tester program attempting to process the previous XML contents, which gves this output:

$ ./test-xmlb test.xml 
** Message: 22:57:24.135: loading bytes in builder source
** (process:261125): WARNING **: 23:03:13.864: builder compile failed: failed to compile 635684fc0f341ab67d8aee0176bea5d9d9104dc2: Mismatched XML

Support the XPath `and` operator

In an AppStream query I was writing today, it would have been useful to have support for the XPath and operator. Is that likely to be added?

The query was:

custom/value[@key='SomeKey' and text()='true']

installed xb-self-test fails due to missing test data

$ /usr/lib/xb-self-test
[...]
/libxmlb/builder{node-vfunc-remove}: (/usr/lib/xb-self-test:2914): XbSilo-DEBUG: 20:24:26.992: compiling a5d360ee37015a0ebc788bab978631ad3579da71:func-id=RemoveGimp?
** (/usr/lib/xb-self-test:2914): DEBUG: 20:24:26.992: ignoring (null)
** (/usr/lib/xb-self-test:2914): DEBUG: 20:24:26.992: ignoring components
** (/usr/lib/xb-self-test:2914): DEBUG: 20:24:26.992: ignoring id
** (/usr/lib/xb-self-test:2914): DEBUG: 20:24:26.992: ignoring id
<components><component><id>inkscape.desktop</id></component></components>
OK
/libxmlb/builder{node-vfunc-depth}: (/usr/lib/xb-self-test:2914): XbSilo-DEBUG: 20:24:26.992: compiling 46392a15166065fccfec86a39694f0bdc26ea8e5:func-id=OnlyRoot@0?
** (/usr/lib/xb-self-test:2914): DEBUG: 20:24:26.992: >(null)<
OK
/libxmlb/builder{node-vfunc-error}: (/usr/lib/xb-self-test:2914): XbSilo-DEBUG: 20:24:26.993: compiling 952396367660d09d8b00ec3baf7fa8100269a169:func-id=AlwaysError?
OK
/libxmlb/builder{ignore-invalid}: (/usr/lib/xb-self-test:2914): XbSilo-DEBUG: 20:24:26.993: compiling e446bd1c5b6c26283409df9eadafeb4463415f94?
(/usr/lib/xb-self-test:2914): XbSilo-DEBUG: 20:24:26.993: compiling 0bb31de2141de8d7e4b888bd4a11d2a60c32bcd7?
(/usr/lib/xb-self-test:2914): XbSilo-DEBUG: 20:24:26.993: ignoring invalid file 0bb31de2141de8d7e4b888bd4a11d2a60c32bcd7: Mismatched XML
<book><id>foobar</id></book>
OK
/libxmlb/builder{custom-mime}: (/usr/lib/xb-self-test:2914): XbSilo-DEBUG: 20:24:26.993: attempting to load /tmp/temp.xmlb
(/usr/lib/xb-self-test:2914): XbSilo-DEBUG: 20:24:26.993: file: bd626763-6d72-51a4-aa94-6f72287379a0, current:22f17b3c-5012-5a2f-9650-c5db4a57c0ef, cached: (null)
(/usr/lib/xb-self-test:2914): XbSilo-DEBUG: 20:24:26.993: compiling /tmp/temp.desktop:ctime=1557771866.991790?
<component type="desktop"><id>temp.desktop</id></component>OK
/libxmlb/builder{chained-adapters}: **
ERROR:../libxmlb-0.1.9/src/xb-self-test.c:462:xb_builder_chained_adapters_func: assertion failed (error == NULL): Error when getting information for file ?/build/libxmlb/src/libxmlb-0.1.9/data/test.xml.gz.gz.gz?: No such file or directory (g-io-error-quark, 1)
[1]    2914 abort (core dumped)  /usr/lib/xb-self-test

Hidden files also monitored when using XB_BUILDER_SOURCE_FLAG_WATCH_DIRECTORY

While debugging GNOME Software and doing upgrades of packages in alpine linux, I get (lots of) repeated debug messages of invalidation of hidden files. Similar to those below:

XbSilo /usr/share/applications/.mimeinfo.cache.DLPXG1 changed, invalidating
XbSilo /usr/share/metainfo/.apk.$long_hash changed, invalidating

Looks like alpine's package manager, apk, is creating temporary files during upgrades. Looking at the MR that introduced the flag and the corresponding one in Software, it looks like that was never the intention.

The small snippet below would probably fix it, but I am not sure if this is something desirable, or if the current behavior is the intended. So I thought I would open an issue before creating a MR.

diff --git i/src/xb-silo.c w/src/xb-silo.c
index 288f6b8..6fae596 100644
--- i/src/xb-silo.c
+++ w/src/xb-silo.c
@@ -878,6 +878,8 @@ xb_silo_watch_file_cb(GFileMonitor *monitor,
        g_autofree gchar *basename = g_file_get_basename(file);
        if (g_str_has_prefix(basename, ".goutputstream"))
                return;
+       if (g_str_has_prefix(basename, "."))
+               return;
        g_debug("%s changed, invalidating", fn);
        xb_silo_invalidate(silo);
 }

Strange behavior when searching for tokens

Hi!

I was debugging some strange behavior in AppStream which may actually be an issue with libxmlb (or at the very least I need some guidance on what the correct approach is here).

AppStream performs its own stemming, so a term like strategy is stemmed to strategi (making it no longer a fulltext search match). AppStream adds the stemmed terms to a node using xb_builder_node_add_token ();.
I have verified that the tokens are actually added, they show up in xb-tool dump output in the correct places.

Now, I first perform a query to get all component nodes in the XML, like this: cpt_nodes = xb_silo_query (csec->silo, "components/component", 0, &tmp_error);

A new query is constructed like this:

query = xb_query_new (csec->silo,
			queries[j].xpath,
			&error_query);

With XPath summary[text()~=?]

Then I iterate over all component nodes cpt_node with search term term (a single, stemmed word):

g_auto(XbQueryContext) context = XB_QUERY_CONTEXT_INIT ();

xb_value_bindings_bind_str (xb_query_context_get_bindings (&context),
			        0,
			        term,
			        NULL);
n = xb_node_query_with_context (cpt_node, query, &context, NULL);

So, the stemmed strategi does not show up in the full text of summary, "A strategy game", it has however been added to the node as token before. So I would expect this code to find the node and yield a result. This is not what happens though.

In XbSilo's xb_silo_machine_func_search_cb, only op2 has XB_OPCODE_FLAG_TOKENIZED set, so we do not perform the fast TOKEN/TOKEN search: https://github.com/hughsie/libxmlb/blob/main/src/xb-silo.c#L1520

Instead, the code always falls back to the slower full-text search below, which in this case does not yield any result.

Why does op1 (containing the "strategi" string) not have that one as token, and why does this inevitably always fall back to the slower search path? Am I supposed to bind the query value differently? Dirty hacks like just adding the string as a token as well to the opcode do not seem to work, so I think I am missing something here / do not understand how tokens relate to text search in libxmlb in concept.

I'm glad for any help :-)

Second predicate doesn’t filter results of first

If I run the two queries:

languages/lang[(text()='en_GB.UTF-8') and (@percentage>50)]|languages/lang[(text()='en_GB') and (@percentage>50)]|languages/lang[(text()='en.UTF-8') and (@percentage>50)]|languages/lang[(text()='en') and (@percentage>50)]
languages/lang[text()='en_GB.UTF-8'][@percentage>50]|languages/lang[text()='en_GB'][@percentage>50]|languages/lang[text()='en.UTF-8'][@percentage>50]|languages/lang[text()='en'][@percentage>50]

on the XML below, they should return the same results. In the second query, the second predicate should filter the results of the first. However, they don’t: the first query returns no results, whereas the second returns the <lang percentage="100">es</lang> element.

I suspect the unions above and most of the XML in the reproducer below are irrelevant, but I’m filing this quickly while working on something else, so haven’t taken the time to trim the reproducer down.

The straightforward workaround is to combine the predicates (as in query 1), and that’s what I’ll do in gnome-software, so I apologise but I don’t plan to come back to this issue. There should be enough information here for someone else to pick it up at some point though.

XML:

<component type="desktop">
    <id>ar.com.softwareperonista.Rockarrolla.desktop</id>
    <translation type="gettext">rockarrolla</translation>
    <name>Rockarrolla</name>
    <summary>A jukebox-like music player</summary>
    <summary xml:lang="es">Un reproductor de música similar a una rockola</summary>
    <description><p>A simple music player with a jukebox-like UI. It shows the albums and their songs in albums and can be added to the playlist with a coin-like system.</p></description>
    <description xml:lang="es"><p>Un reproductor de música con una interfaz similar a una rockola. Muestra los álbumes, las canciones de los álbumes y pueden ser agregadas a la lista de reproducción mediante un sistema similar al de las fichas de una rockola.</p></description>
    <icon type="cached" height="64" width="64">ar.com.softwareperonista.Rockarrolla.png</icon>
    <icon type="cached" height="128" width="128">ar.com.softwareperonista.Rockarrolla.png</icon>
   <categories>
      <category>Audio</category>
      <category>AudioVideo</category>
      <category>Jukebox</category>
      <category>Music</category>
    </categories>
    <kudos>
      <kudo>HiDpiIcon</kudo>
    </kudos>
    <project_license>GPL-3.0</project_license>
    <url type="homepage">https://gitlab.com/softwareperonista/rockarrolla</url>
    <screenshots>
      <screenshot type="default">
        <image type="source">https://gitlab.com/softwareperonista/rockarrolla/-/raw/master/screenshots/main-interface.png</image>
        <image type="thumbnail" height="351" width="624">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/624x351/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
        <image type="thumbnail" height="702" width="1248">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/1248x702/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
       <image type="thumbnail" height="63" width="112">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/112x63/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
        <image type="thumbnail" height="126" width="224">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/224x126/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
        <image type="thumbnail" height="423" width="752">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/752x423/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
        <image type="thumbnail" height="846" width="1504">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/1504x846/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
      </screenshot>
      <screenshot>
        <image type="source">https://gitlab.com/softwareperonista/rockarrolla/-/raw/master/screenshots/stand-by.png</image>
        <image type="thumbnail" height="351" width="624">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/624x351/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
        <image type="thumbnail" height="702" width="1248">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/1248x702/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
       <image type="thumbnail" height="63" width="112">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/112x63/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
        <image type="thumbnail" height="126" width="224">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/224x126/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
        <image type="thumbnail" height="423" width="752">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/752x423/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
        <image type="thumbnail" height="846" width="1504">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/1504x846/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
      </screenshot>
    </screenshots>
    <content_rating type="oars-1.1"/>
    <releases>
      <release timestamp="1625616000" version="1.0"/>
    </releases>
    <launchable type="desktop-id">ar.com.softwareperonista.Rockarrolla.desktop</launchable>
    <languages>
      <lang percentage="100">es</lang>
    </languages>
    <bundle type="flatpak" runtime="org.gnome.Platform/x86_64/40" sdk="org.gnome.Sdk/x86_64/40">app/ar.com.softwareperonista.Rockarrolla/x86_64/stable</bundle>
  </component>

generated xb data not usable in some locales

I'm partly upstreaming this from a gnome-software bug:
https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2443

This is on Fedora 39 with libxmlb 0.3.15-1. Downgrade to the 0.3.14-1 doesn't seem to change anything.

where the user doesn't see Flatpak apps when runs gnome-software in some locales, while they are shown with for example en_US.utf8 locale.

We did some investigation in the bug and the xb-tool is able to reproduce the problem with failed queries, even though the query itself does not contain anything locale-specific.

You can fast-forward to this comment, though it would be good to read the whole bug, maybe. The user did not change the locale in the system, thus the things should just work, right?

Do you think there is a reason why the queries can fail, depending with which locale the gnome-software generates the xmlb blobs/files?

Fix function doc for xb_builder_source_add_simple_adapter()

The documentation is exactly the same as xb_builder_source_add_adapter()

 * @self: a #XbBuilderSource
 * @content_types: mimetypes, e.g. `application/x-desktop,application/gzip`
 * @func: a callback, or %NULL
 * @user_data: user pointer to pass to @func, or %NULL
 * @user_data_free: a function which gets called to free @user_data, or %NULL
 *
 * Adds a function that can be used to convert streams loaded with
 * xb_builder_source_load_xml().

Now that they differ in a flag arg (is_simple), both descriptions should be updated to reflect this.

Non-reproducible GUID in compressed XML files

Hello Richard Hughes,

While working on the “reproducible builds” effort 1, I have noticed that the content of the GUID field of the converted, compressed XML files cannot be recreated in any way.

The function xb_builder_import_node (which is called by as_cache_components_to_internal_xb in appstream) uses the address of a pointer for the creation of the GUID field 2.
See the currents tests 3 for Debian, and the investigations I previously did 4.

Steps to reproduce:

  • Run appstreamcli refresh-cache
  • Notice that the content of /var/cache/app-info/cache/C-os-catalog.xb changes only in the GUID field (using xb-tool)
  • If the file C-local-metainfo.xb is deleted before running appstreamcli refresh-cache, it will also differ only in the GUID field.

The tool xb-tool does not call xb_builder_import_node, so I cannot give an example that only uses libxmlb.

My goal:

  • Create a live image that can be reproduced bit-by-bit.

Proposal:

  • For a drop-in-replacement of the GUID field (128 bits) I see several easy alternatives:
    1. Zero-out the field and not use it (which is probably not desired)
    1. Calculate the MD5 checksum (which is also 128 bits) of the compressed bitstream before writing to disk
    1. Generate a truly random UUID, with uuid_generate_random from libuuid (which I can de-randomize using my LD_PRELOAD-hack)
  • Alternatively (but that requires more bits), something similar to GNU_BUILD_ID can be used
  • If you are interested, I can provide you with a patch.

With kind regards,
Roland Clobus

why disable msvc?

Hi,

I'm trying to build this project in Windows, with MSVC, but the code disabled it.

libxmlb/meson.build

Lines 89 to 91 in 4393955

if cc.get_id() == 'msvc'
error('MSVC is not supported as it does not support __attribute__((cleanup))')
endif

I checked the code and found that __attribute__((cleanup)) is not used in the source code, so why disable msvc?

XbSilo-CRITICAL **: strtab+offset is outside the data range for 12

I do not know what I've missing here, but I surely do something miss here. When I:

  1. mkdir -p /tmp/share/app-info/xmls
  2. cp /usr/share/app-info/xmls/fedora-popular.xml /tmp/share/app-info/xmls
  3. compile the attached xml-parser.c.txt (the first line contains a command to compile & run it) and run it, then I get:
process:66515): XbSilo-CRITICAL **: 18:03:12.609: strtab+offset is outside the data range for 12

** (process:66515): WARNING **: 18:03:12.609: Failed to compile data: strtab_ntags incorrect

I do not know why it does that, but when I comment out the "RemoveNonMergeComponents" fixup (beginning at line 142), then it is happy.

This is with the current sources, at commit 3f25c84.

When I keep the /tmp/share/app-info/xmls empty, then I get a crash:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7fa952a in xb_silo_get_node_element (self=0x4178e0, n=0x0) at ../src/xb-silo.c:438
438		return xb_silo_from_strtab(self, n->element_name);

#0  0x00007ffff7fa952a in xb_silo_get_node_element (self=0x4178e0, n=0x0) at ../src/xb-silo.c:438
#1  0x00007ffff7fa525c in xb_node_get_element (self=0x419020) at ../src/xb-node.c:488
#2  0x0000000000402efa in gs_appstream_traverse_silo_for_index (node=0x419020, index=0x409b00, depth=0) at xml-parse.c:190
#3  0x00000000004030f1 in gs_appstream_create_silo_index (silo=0x4178e0) at xml-parse.c:220
#4  0x0000000000403232 in main (argc=1, argv=0x7fffffffda98) at xml-parse.c:248

An interesting observation, when I change the path, like to /tmp/xxx, then the runtime warning has a different number.

For the code itself: I want to read all components, which have the merge attribute and discard (ignore) everything else. I want also the opposite, read only components without the merge attribute. Maybe I do something wrong, or the XB_BUILDER_NODE_FLAG_IGNORE flag misbehaves, or anything else.

Include build documentation

As reported in fwupd/fwupd#914 it isn't obvious that the steps to build are:

# meson build
# ninja -C build
# ninja -C build install
# ldconfig

These should be included in README.md to make it clearer when installing from a non-packaged version how to use this project.

Possibly inline a number of internals

It looks like LTO isn't doing such a great job of interning a number of things that I think are worth seeing inlined. Not because these functions themselves show up on profiles a whole lot (but they do show up) but instead that the reduce the amount of optimization that can surround them in tight loops.

These aren't any panacea or anything, but it does help ensure that the compiler knows what is going on across the function call and perhaps reorder things a bit more.

  • Hoist a bunch of xb-opcode.c into xb-opcode-private.h
  • Hoist a bunch (all) of xb-silo-node.c into xb-silo-node-private.h

And of course bunch of that can be const and G_GNUC_PURE in the process.

The structures here are already exposed in the private headers and so static inlineing the helpers that are used everywhere makes sense to me.

While I'm here, I also wondered about perhaps changing how xb_machine does GError. Turns out we hit the failure path in xb_machine_check_two_args() quite a bit. Is it essential to propagate opcode level error tracking?

Anyway, wanted to get your thoughts before I spend too much time on it.

fwupd conflict with `gwyddion` package

A downstream bug report in Ubuntu indicated that silos were failing to compile. After debugging the issue it came down to the user installing the gwyddion package.

fwupd[920251]: 11:13:34:0743 FuQuirks failed to build silo: failed to compile /usr/share/fwupd/quirks.d/tpm.quirk:ctime=1601481168.750206: cannot process content type application/x-stmprg-spm

This package, gwyddion installs a mime type specifically:

<!-- From module stmprg.c -->
<mime-type type="application/x-stmprg-spm">
  <comment>Omicron STMPRG data parameters</comment>
  <magic priority="80">
    <match type="string" offset="0" value="MPAR"/>
  </magic>
  <glob pattern="tp*"/>
  <glob pattern="TP*"/>
</mime-type>

This code comes from:
https://sourceforge.net/p/gwyddion/code/HEAD/tree/trunk/gwyddion/modules/file/stmprg.c

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.