qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL for 10.1-rc2 0/3] doc and testing fixes
@ 2025-08-04 15:15 Alex Bennée
  2025-08-04 15:15 ` [PULL 1/3] docs/devel/submitting-a-patch.rst: add b4 section Alex Bennée
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Alex Bennée @ 2025-08-04 15:15 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alex Bennée

The following changes since commit e5859141b9b6aec9e0a14dacedc9f02fe2f15844:

  Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2025-08-01 10:46:00 -0400)

are available in the Git repository at:

  https://gitlab.com/stsquad/qemu.git tags/pull-10.1-rc2-maintainer-040825-2

for you to fetch changes up to 61432e805e5028df0a3df5a76915cdc3007ecd41:

  tests/docker: fix debian-all-test-cross (2025-08-04 16:13:38 +0100)

----------------------------------------------------------------
Testing and doc fixes

  - add information about patch submission with b4
  - fix make-release script to include all EDK submodules
  - fix debian-all-test-cross docker image

----------------------------------------------------------------
Alex Bennée (1):
      tests/docker: fix debian-all-test-cross

Manos Pitsidianakis (1):
      docs/devel/submitting-a-patch.rst: add b4 section

Peter Maydell (1):
      scripts/make-release: Go back to cloning all the EDK2 submodules

 docs/devel/submitting-a-patch.rst                  | 40 ++++++++++++++++++++--
 scripts/make-release                               | 20 +++++------
 .../dockerfiles/debian-all-test-cross.docker       |  4 +--
 3 files changed, 48 insertions(+), 16 deletions(-)

-- 
2.47.2



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PULL 1/3] docs/devel/submitting-a-patch.rst: add b4 section
  2025-08-04 15:15 [PULL for 10.1-rc2 0/3] doc and testing fixes Alex Bennée
@ 2025-08-04 15:15 ` Alex Bennée
  2025-08-04 15:15 ` [PULL 2/3] scripts/make-release: Go back to cloning all the EDK2 submodules Alex Bennée
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Alex Bennée @ 2025-08-04 15:15 UTC (permalink / raw)
  To: qemu-devel
  Cc: Manos Pitsidianakis, Gustavo Romero, Alex Bennée,
	Daniel P. Berrangé, Thomas Huth, Markus Armbruster,
	Philippe Mathieu-Daudé

From: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>

Add a section about b4, an actively maintained and widely packaged CLI
tool for contributing to patch-based development projects.

Reviewed-by: Gustavo Romero <gustavo.romero@linaro.org>
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Message-ID: <20250717-docs_add_b4_section-v2-1-69212ed39299@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/docs/devel/submitting-a-patch.rst b/docs/devel/submitting-a-patch.rst
index f7917b899f6..dd1cf32ad35 100644
--- a/docs/devel/submitting-a-patch.rst
+++ b/docs/devel/submitting-a-patch.rst
@@ -235,6 +235,38 @@ to another list.) ``git send-email`` (`step-by-step setup guide
 works best for delivering the patch without mangling it, but
 attachments can be used as a last resort on a first-time submission.
 
+.. _use_b4:
+
+Use B4
+~~~~~~
+
+The `b4`_ tool, used for Linux kernel development, can also be used for QEMU
+development. It is packaged in most distros and PyPi. The QEMU source tree
+includes a ``b4`` project configuration file at the root: ``.b4-config``.
+
+Example workflow to prepare a patch series:
+
+1. Start with a clean checkout of the ``master`` branch.
+2. Create a new series with a topical branch name using ``b4 prep -n descriptive-name``.
+   ``b4`` will create a ``b4/descriptive-name`` branch and switch to it.
+3. Commit your changes, following this page's guidelines about proper commit messages etc.
+4. Write a descriptive cover letter with ``b4 prep --edit-cover``.
+5. Add maintainer and reviewer CCs with ``b4 prep --auto-to-cc``. You can make
+   changes to Cc: and To: recipients by editing the cover letter.
+6. Run patch checks with ``b4 prep --check``.
+7. Optionally review the patches with ``b4 send --dry-run`` which will print the
+   raw patches in standard output.
+
+To send the patches, you can:
+
+- Setup ``git-send-email`` and use ``b4 send``, or
+- Export the patches to files using ``b4 send -o OUTPUT_DIR`` and send them manually.
+
+For more details, consult the `b4 documentation`_.
+
+.. _b4 documentation: https://b4.docs.kernel.org/
+.. _b4: https://github.com/mricon/b4/
+
 .. _use_git_publish:
 
 Use git-publish
@@ -418,7 +450,7 @@ Retrieve an existing series
 ---------------------------
 
 If you want to apply an existing series on top of your tree, you can simply use
-`b4 <https://github.com/mricon/b4>`__.
+`b4`_.
 
 ::
 
@@ -533,7 +565,11 @@ summary belongs. The `git-publish
 <https://github.com/stefanha/git-publish>`__ script can help with
 tracking a good summary across versions. Also, the `git-backport-diff
 <https://github.com/codyprime/git-scripts>`__ script can help focus
-reviewers on what changed between revisions.
+reviewers on what changed between revisions. The ``b4`` tool automatically
+generates a version history section in the cover letter, including links to the
+previous versions on `Lore`_.
+
+.. _Lore: https://lore.kernel.org/
 
 .. _tips_and_tricks:
 
-- 
2.47.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PULL 2/3] scripts/make-release: Go back to cloning all the EDK2 submodules
  2025-08-04 15:15 [PULL for 10.1-rc2 0/3] doc and testing fixes Alex Bennée
  2025-08-04 15:15 ` [PULL 1/3] docs/devel/submitting-a-patch.rst: add b4 section Alex Bennée
@ 2025-08-04 15:15 ` Alex Bennée
  2025-08-04 15:15 ` [PULL 3/3] tests/docker: fix debian-all-test-cross Alex Bennée
  2025-08-05 19:00 ` [PULL for 10.1-rc2 0/3] doc and testing fixes Stefan Hajnoczi
  3 siblings, 0 replies; 5+ messages in thread
From: Alex Bennée @ 2025-08-04 15:15 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, qemu-stable, Michael Tokarev, Alex Bennée

From: Peter Maydell <peter.maydell@linaro.org>

In commit bd0da3a3d4f we changed make-release so that instead of
cloning every git submodule of EDK2 we only cloned a fixed list.
The original motivation for this was that one of the submodules:
 * was from a non-github repo
 * that repo had a "SSL certificate expired" failure
 * wasn't actually needed for the set of EDK2 binaries we build
and at the time we were trying to build the EDK2 binaries in one of
our CI jobs.

Unfortunately this change meant that we were exposed to bugs where
EDK2 adds a new submodule and the sources we ship in the release
tarball won't build any more.  In particular, in EDK2 commit
c6bb7d54beb05 the MipiSysTLib submodule was added, causing failure of
the ROM build in our tarball starting from QEMU release 8.2.0:

/tmp/qemu-10.0.0/roms/edk2/MdePkg/MdePkg.dec(32): error 000E: File/directory not found in workspace
        Library/MipiSysTLib/mipisyst/library/include is not found in packages path:
        /tmp/qemu-10.0.0/roms/.
        /tmp/qemu-10.0.0/roms/edk2

(Building from a QEMU git checkout works fine.)

In the intervening time EDK2 moved the submodule that had a problem
to be one they mirrored themselves (and at time of writing all their
submodules are hosted on github), and we stopped trying to build
EDK2 binaries in our own CI jobs with commit 690ceb71936f9037f6.

Go back to cloning every EDK2 submodule, so we don't have an
untested explicit list of submodules which will break without
our noticing it.

This increases the size of the QEMU tarball .tar.xz file from
133M to 139M in my testing.

Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3041
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Message-ID: <20250721153341.2910800-1-peter.maydell@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/scripts/make-release b/scripts/make-release
index 4509a9fabf5..87f563ef5f7 100755
--- a/scripts/make-release
+++ b/scripts/make-release
@@ -62,17 +62,15 @@ meson subprojects download $SUBPROJECTS
 (cd roms/skiboot && ./make_version.sh > .version)
 # Fetch edk2 submodule's submodules, since it won't have access to them via
 # the tarball later.
-#
-# A more uniform way to handle this sort of situation would be nice, but we
-# don't necessarily have much control over how a submodule handles its
-# submodule dependencies, so we continue to handle these on a case-by-case
-# basis for now.
-(cd roms/edk2 && \
-    git submodule update --init --depth 1 -- \
-        ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 \
-        BaseTools/Source/C/BrotliCompress/brotli \
-        CryptoPkg/Library/OpensslLib/openssl \
-        MdeModulePkg/Library/BrotliCustomDecompressLib/brotli)
+
+# As recommended by the EDK2 readme, we don't use --recursive here.
+# EDK2 won't use any code or feature from a submodule of a submodule,
+# so we don't need to add them to the tarball.
+# Although we don't necessarily need all of the submodules that EDK2
+# has, we clone them all, to avoid running into problems where EDK2
+# adds a new submodule or changes its use of an existing one and
+# the sources we ship in the tarball then fail to build.
+(cd roms/edk2 && git submodule update --init --depth 1)
 popd
 
 exclude=(--exclude=.git)
-- 
2.47.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PULL 3/3] tests/docker: fix debian-all-test-cross
  2025-08-04 15:15 [PULL for 10.1-rc2 0/3] doc and testing fixes Alex Bennée
  2025-08-04 15:15 ` [PULL 1/3] docs/devel/submitting-a-patch.rst: add b4 section Alex Bennée
  2025-08-04 15:15 ` [PULL 2/3] scripts/make-release: Go back to cloning all the EDK2 submodules Alex Bennée
@ 2025-08-04 15:15 ` Alex Bennée
  2025-08-05 19:00 ` [PULL for 10.1-rc2 0/3] doc and testing fixes Stefan Hajnoczi
  3 siblings, 0 replies; 5+ messages in thread
From: Alex Bennée @ 2025-08-04 15:15 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Manos Pitsidianakis,
	Philippe Mathieu-Daudé, Thomas Huth

It turns out you can't easily expand an ENV var across multiple steps
in a dockerfile. This meant we silently dropped the architectures we
should have even on amd64 hosts. As the updated AVAILABLE_COMPILERS is
only needed for the following apt install line just merge them.

Fixes: 6da616bb170 (tests/docker: handle host-arch selection for all-test-cross)
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-ID: <20250804104308.250949-1-alex.bennee@linaro.org>

diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker b/tests/docker/dockerfiles/debian-all-test-cross.docker
index ef69bbc8a51..420a4e33e60 100644
--- a/tests/docker/dockerfiles/debian-all-test-cross.docker
+++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
@@ -62,9 +62,7 @@ RUN if dpkg-architecture -e amd64; then \
   export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc64-linux-gnu libc6-dev-ppc64-cross"; \
   export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-sparc64-linux-gnu libc6-dev-sparc64-cross"; \
   fi && \
-  echo "compilers: ${AVAILABLE_COMPILERS}"
-
-RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+  DEBIAN_FRONTEND=noninteractive eatmydata \
         apt install -y --no-install-recommends \
         ${AVAILABLE_COMPILERS} && \
         dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
-- 
2.47.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PULL for 10.1-rc2 0/3] doc and testing fixes
  2025-08-04 15:15 [PULL for 10.1-rc2 0/3] doc and testing fixes Alex Bennée
                   ` (2 preceding siblings ...)
  2025-08-04 15:15 ` [PULL 3/3] tests/docker: fix debian-all-test-cross Alex Bennée
@ 2025-08-05 19:00 ` Stefan Hajnoczi
  3 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2025-08-05 19:00 UTC (permalink / raw)
  To: Alex Bennée; +Cc: qemu-devel, Alex Bennée

[-- Attachment #1: Type: text/plain, Size: 116 bytes --]

Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/10.1 for any user-visible changes.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-08-05 19:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-04 15:15 [PULL for 10.1-rc2 0/3] doc and testing fixes Alex Bennée
2025-08-04 15:15 ` [PULL 1/3] docs/devel/submitting-a-patch.rst: add b4 section Alex Bennée
2025-08-04 15:15 ` [PULL 2/3] scripts/make-release: Go back to cloning all the EDK2 submodules Alex Bennée
2025-08-04 15:15 ` [PULL 3/3] tests/docker: fix debian-all-test-cross Alex Bennée
2025-08-05 19:00 ` [PULL for 10.1-rc2 0/3] doc and testing fixes Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).