2791 Commits

Author SHA1 Message Date
4874dff95d scripts/sign-macos-release.sh: Update package filename 2026-01-12 21:26:58 -07:00
7687af0861 scripts/archive-source.sh: Support prefixing tar 2026-01-04 23:38:25 -07:00
95ee862219 scripts/archive-source.sh: Drop xemu version determination 2026-01-04 23:38:25 -07:00
c4f3f84ab6 scripts/archive-source.sh: Download subprojects in parallel 2026-01-04 23:38:25 -07:00
e409f7afd9 ui: Drop xemu branch tracking 2026-01-04 23:38:25 -07:00
a99e4347f4 ci: Split up build workflow 2026-01-03 02:53:39 -07:00
a672d723b8 scripts/sign-macos-release.sh: Add for macOS release signing 2026-01-01 22:19:54 -07:00
e8b69b676a build: Add libusb support to builds 2025-12-25 15:24:42 -07:00
3b495859ca nvapi: Add library to create NVIDIA driver application profiles 2025-07-11 02:11:47 -07:00
967f35444c scripts/gen-license.py: Run black formatter 2025-07-11 02:11:47 -07:00
c832e0d0dd scripts/gen-license.py: Add license path parameter 2025-07-11 02:11:47 -07:00
362c27b235 ci: Auto-update subproject wraps periodically 2025-04-26 16:02:21 -07:00
708445a8dd scripts/download-macos-libs.py: Patch out epoxy.pc Requires.private 2025-03-22 15:26:12 -07:00
6877015941 scripts/download-macos-libs.py: Bump arm64 to macOS 13.x (darwin 22) 2025-03-17 13:41:55 -07:00
c782b1e8ed scripts/download-macos-libs.py: Set mirror to main packages.macports.org 2025-03-17 13:41:55 -07:00
fac9ae83c7 scripts/xemu-version.sh: Use 0.0.0 if version cannot be detected 2025-03-13 15:10:32 -07:00
1d662cb49e meson: Replace in-tree nlohmann_json with a subproject wrap 2025-03-08 02:36:24 -07:00
f305279f67 scripts/gen-license.py: Drop openssl 2025-03-07 22:12:49 -07:00
38b7cbe668 scripts/download-macos-libs.py: Drop openssl11 dep 2025-03-07 22:12:49 -07:00
d2948f18fe scripts/gen-license.py: Drop cpp-httplib 2025-03-07 22:12:49 -07:00
5428760104 meson: Drop cpp-httplib dep 2025-03-07 22:12:49 -07:00
ccbf45aecf scripts/gen-license.py: Add libcurl 2025-03-07 22:12:49 -07:00
046d127f31 ui: Trim FontAwesome font to glyphs in use (save 940KiB) 2025-03-06 03:00:45 -07:00
41ad49c9e9 scripts/download-macos-libs.py: Skip libsndfile 2025-03-04 22:58:26 -07:00
366aacb398 Merge QEMU v9.2.1 2025-02-15 13:59:10 -07:00
73e1acfd92 scripts/gen-license.py: Get version from glslang subproj 2025-01-26 03:48:38 -07:00
1032dccadb make-release: only leave tarball of wrap-file subprojects
The QEMU source archive is including the sources downloaded from crates.io
in both tarball form (in subprojects/packagecache) and expanded/patched
form (in the subprojects directory).  The former is the more authoritative
form, as it has a hash that can be verified in the wrap file and checked
against the download URL, so keep that one only.  This works also with
--disable-download; when building QEMU for the first time from the
tarball, Meson will print something like

    Using proc-macro2-1-rs source from cache.

for each subproject, and then go on to extract the tarball and apply the
overlay or the patches in subprojects/packagefiles.

Reported-by: Michael Tokarev <mjt@tls.msk.ru>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2719
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit be27b5149c86f81531f8fc609baf3480fc4d9ca0)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2025-01-17 21:54:18 +03:00
82565fb6b3 migration: Fix arrays of pointers in JSON writer
Currently, if an array of pointers contains a NULL pointer, that
pointer will be encoded as '0' in the stream. Since the JSON writer
doesn't define a "pointer" type, that '0' will now be an uint8, which
is different from the original type being pointed to, e.g. struct.

(we're further calling uint8 "nullptr", but that's irrelevant to the
issue)

That mixed-type array shouldn't be compressed, otherwise data is lost
as the code currently makes the whole array have the type of the first
element:

css = {NULL, NULL, ..., 0x5555568a7940, NULL};

{"name": "s390_css", "instance_id": 0, "vmsd_name": "s390_css",
 "version": 1, "fields": [
    ...,
    {"name": "css", "array_len": 256, "type": "nullptr", "size": 1},
    ...,
]}

In the above, the valid pointer at position 254 got lost among the
compressed array of nullptr.

While we could disable the array compression when a NULL pointer is
found, the JSON part of the stream still makes part of downtime, so we
should avoid writing unecessary bytes to it.

Keep the array compression in place, but if NULL and non-NULL pointers
are mixed break the array into several type-contiguous pieces :

css = {NULL, NULL, ..., 0x5555568a7940, NULL};

{"name": "s390_css", "instance_id": 0, "vmsd_name": "s390_css",
 "version": 1, "fields": [
     ...,
     {"name": "css", "array_len": 254, "type": "nullptr", "size": 1},
     {"name": "css", "type": "struct", "struct": {"vmsd_name": "s390_css_img", ... }, "size": 768},
     {"name": "css", "type": "nullptr", "size": 1},
     ...,
]}

Now each type-discontiguous region will become a new JSON entry. The
reader should interpret this as a concatenation of values, all part of
the same field.

Parsing the JSON with analyze-script.py now shows the proper data
being pointed to at the places where the pointer is valid and
"nullptr" where there's NULL:

"s390_css (14)": {
    ...
    "css": [
        "nullptr",
        "nullptr",
        ...
        "nullptr",
        {
            "chpids": [
            {
                "in_use": "0x00",
                "type": "0x00",
                "is_virtual": "0x00"
            },
            ...
            ]
        },
        "nullptr",
    }

Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id: <20250109185249.23952-7-farosas@suse.de>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
(cherry picked from commit 35049eb0d2fc72bb8c563196ec75b4d6c13fce02)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2025-01-13 11:25:57 +03:00
3ba6e1164a migration: Rename vmstate_info_nullptr
Rename vmstate_info_nullptr from "uint64_t" to "nullptr". This vmstate
actually reads and writes just a byte, so the proper name would be
uint8. However, since this is a marker for a NULL pointer, it's
convenient to have a more explicit name that can be identified by the
consumers of the JSON part of the stream.

Change the name to "nullptr" and add support for it in the
analyze-migration.py script. Arbitrarily use the name of the type as
the value of the field to avoid the script showing 0x30 or '0', which
could be confusing for readers.

Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id: <20250109185249.23952-5-farosas@suse.de>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
(cherry picked from commit f52965bf0eeee28e89933264f1a9dbdcdaa76a7e)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2025-01-13 11:25:57 +03:00
e3839b0c19 migration: Fix parsing of s390 stream
The parsing for the S390StorageAttributes section is currently leaving
an unconsumed token that is later interpreted by the generic code as
QEMU_VM_EOF, cutting the parsing short.

The migration will issue a STATTR_FLAG_DONE between iterations, which
the script consumes correctly, but there's a final STATTR_FLAG_EOS at
.save_complete that the script is ignoring. Since the EOS flag is a
u64 0x1ULL and the stream is big endian, on little endian hosts a byte
read from it will be 0x0, the same as QEMU_VM_EOF.

Fixes: 81c2c9dd5d ("tests/qtest/migration-test: Fix analyze-migration.py for s390x")
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id: <20250109185249.23952-4-farosas@suse.de>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
(cherry picked from commit 69d1f784569fdb950f2923c3b6d00d7c1b71acc1)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2025-01-13 11:25:57 +03:00
ea3b821595 migration: Add more error handling to analyze-migration.py
The analyze-migration script was seen failing in s390x in misterious
ways. It seems we're reaching the VMSDFieldStruct constructor without
any fields, which would indicate an empty .subsection entry, a
VMSTATE_STRUCT with no fields or a vmsd with no fields. We don't have
any of those, at least not without the unmigratable flag set, so this
should never happen.

Add some debug statements so that we can see what's going on the next
time the issue happens.

Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id: <20250109185249.23952-2-farosas@suse.de>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
(cherry picked from commit 86bee9e0c761a3d0e67c43b44001fd752f894cb0)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2025-01-13 09:44:33 +03:00
f417d8b7ae scripts/archive-source.sh: Fix xemu subproject deps 2025-01-09 15:48:27 -07:00
abfd542891 meson: Update buildoptions 2025-01-06 23:05:53 -07:00
af22de5eb7 scripts/archive-source.sh: Drop non-xemu deps 2025-01-06 23:05:53 -07:00
21a3ee89ba meson: Migrate genconfig submodule to subproject 2025-01-06 23:05:53 -07:00
fcf5eb84a1 meson: Migrate implot submodule to subproject 2025-01-06 23:05:53 -07:00
09f7787fa9 meson: Migrate imgui submodule to subproject 2025-01-06 23:05:53 -07:00
ec974f1c7c Merge tag 'v9.2.0'
v9.2.0 release
2025-01-03 22:30:04 -07:00
4571967472 scripts/gen-license.py: Fix license URLs 2025-01-02 19:07:25 -07:00
4c943c1956 scripts/gen-license.py: Support wrap versions 2025-01-02 19:07:25 -07:00
f96f2754cc meson: Migrate xxhash submodule to a subproject 2025-01-02 19:07:25 -07:00
616a5e5d0b archive-source.sh: Support subprojects that specify directory different from wrapfile 2025-01-02 19:07:25 -07:00
084b40fc53 meson: Migrate cpp-httplib submodule to a subproject 2025-01-02 19:07:25 -07:00
55118b4260 meson: Migrate tomlplusplus submodule to a subproject 2025-01-02 19:07:25 -07:00
824af3978f meson: Migrate nv2a_vsh_cpu submodule to a subproject 2025-01-02 19:07:25 -07:00
fde6b17ed0 scripts/archive-source.sh: Archive subprojects
Cherry-pick part of QEMU 2019cab for Vulkan dependency support before
merging future QEMU updates.
2024-12-31 01:37:05 -07:00
209c0991a1 meson: Convert VulkanMemoryAllocator submodule to a subproject 2024-12-31 01:37:05 -07:00
615748fe4b meson: Convert SPIRV-Reflect submodule to a subproject 2024-12-31 01:37:05 -07:00
c54964a44a meson: Convert volk submodule to a subproject 2024-12-31 01:37:05 -07:00
407e463938 scripts/gen-license.py: Support subprojects 2024-12-31 01:37:05 -07:00