All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 0/3] Update meson version
@ 2021-09-18  9:31 Paolo Bonzini
  2021-09-18  9:31 ` [PULL 1/3] meson: bump submodule to 0.58.2 Paolo Bonzini
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Paolo Bonzini @ 2021-09-18  9:31 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit 831aaf24967a49d7750090b9dcfd6bf356f16529:

  Merge remote-tracking branch 'remotes/marcandre/tags/misc-pull-request' into staging (2021-09-14 18:14:56 +0100)

are available in the Git repository at:

  https://gitlab.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to ccc3f971c37bd2202a21abc9f0be093f10426364:

  hexagon: use env keyword argument to pass PYTHONPATH (2021-09-15 09:12:55 +0200)

----------------------------------------------------------------
* Update Meson to 0.58.2

----------------------------------------------------------------
Paolo Bonzini (3):
      meson: bump submodule to 0.58.2
      meson: switch minimum meson version to 0.58.2
      hexagon: use env keyword argument to pass PYTHONPATH

 configure                     |  8 ++-----
 docs/meson.build              | 14 +++++------
 meson                         |  2 +-
 meson.build                   | 54 ++++++++++++++++++++-----------------------
 plugins/meson.build           |  4 ++--
 scripts/mtest2make.py         |  7 ++----
 target/hexagon/meson.build    |  3 ++-
 tests/qapi-schema/meson.build |  4 ++--
 tests/qtest/meson.build       |  2 +-
 tests/unit/meson.build        |  2 +-
 trace/meson.build             |  4 ++--
 11 files changed, 47 insertions(+), 57 deletions(-)
-- 
2.31.1



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

* [PULL 1/3] meson: bump submodule to 0.58.2
  2021-09-18  9:31 [PULL 0/3] Update meson version Paolo Bonzini
@ 2021-09-18  9:31 ` Paolo Bonzini
  2021-09-18  9:31 ` [PULL 2/3] meson: switch minimum meson version " Paolo Bonzini
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: Paolo Bonzini @ 2021-09-18  9:31 UTC (permalink / raw)
  To: qemu-devel

The update to 0.57 has been delayed due to it causing warnings for
some actual issues, but it brings in important bugfixes and new
features.  0.58 also brings in a bugfix that is useful for modinfo.

Important bugfixes:

- 0.57: https://github.com/mesonbuild/meson/pull/7760, build: use PIE
objects for non-PIC static libraries if b_pie=true

- 0.57: https://github.com/mesonbuild/meson/pull/7900, thus avoiding
unnecessary rebuilds after running meson.

- 0.58.2: https://github.com/mesonbuild/meson/pull/8900, fixes for
passing extract_objects() to custom_target (useful for modinfo)

Features:

- 0.57: the keyval module has now been stabilized

- 0.57: env argument to custom_target (useful for hexagon)

- 0.57: Feature parity between "meson test" and QEMU's TAP driver

- 0.57: https://github.com/mesonbuild/meson/pull/8231, allows bringing
back version numbers in the configuration summary

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson b/meson
index 776acd2a80..8bcd4c72e3 160000
--- a/meson
+++ b/meson
@@ -1 +1 @@
-Subproject commit 776acd2a805c9b42b4f0375150977df42130317f
+Subproject commit 8bcd4c72e321705cb6cde02c684ffd2ec5cc8843
-- 
2.31.1




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

* [PULL 2/3] meson: switch minimum meson version to 0.58.2
  2021-09-18  9:31 [PULL 0/3] Update meson version Paolo Bonzini
  2021-09-18  9:31 ` [PULL 1/3] meson: bump submodule to 0.58.2 Paolo Bonzini
@ 2021-09-18  9:31 ` Paolo Bonzini
  2021-09-18  9:31 ` [PULL 3/3] hexagon: use env keyword argument to pass PYTHONPATH Paolo Bonzini
  2021-09-21 12:40 ` [PULL 0/3] Update meson version Peter Maydell
  3 siblings, 0 replies; 11+ messages in thread
From: Paolo Bonzini @ 2021-09-18  9:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marc-André Lureau

Meson 0.58.2 does not need b_staticpic=$pie anymore, and has
stabilized the keyval module.  Remove the workaround and use a few
replacements for features deprecated in the 0.57.0 release cycle.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure                     |  8 ++----
 docs/meson.build              | 14 ++++-----
 meson.build                   | 54 ++++++++++++++++-------------------
 plugins/meson.build           |  4 +--
 scripts/mtest2make.py         |  7 ++---
 tests/qapi-schema/meson.build |  4 +--
 tests/qtest/meson.build       |  2 +-
 tests/unit/meson.build        |  2 +-
 trace/meson.build             |  4 +--
 9 files changed, 44 insertions(+), 55 deletions(-)

diff --git a/configure b/configure
index da2501489f..bfe1fddf4c 100755
--- a/configure
+++ b/configure
@@ -1995,7 +1995,7 @@ python_version=$($python -c 'import sys; print("%d.%d.%d" % (sys.version_info[0]
 python="$python -B"
 
 if test -z "$meson"; then
-    if test "$explicit_python" = no && has meson && version_ge "$(meson --version)" 0.55.3; then
+    if test "$explicit_python" = no && has meson && version_ge "$(meson --version)" 0.58.2; then
         meson=meson
     elif test $git_submodules_action != 'ignore' ; then
         meson=git
@@ -5162,10 +5162,6 @@ if test "$skip_meson" = no; then
   mv $cross config-meson.cross
 
   rm -rf meson-private meson-info meson-logs
-  unset staticpic
-  if ! version_ge "$($meson --version)" 0.56.0; then
-    staticpic=$(if test "$pie" = yes; then echo true; else echo false; fi)
-  fi
   NINJA=$ninja $meson setup \
         --prefix "$prefix" \
         --libdir "$libdir" \
@@ -5185,7 +5181,6 @@ if test "$skip_meson" = no; then
         -Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \
         -Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
         -Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
-        ${staticpic:+-Db_staticpic=$staticpic} \
         -Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
         -Db_lto=$lto -Dcfi=$cfi -Dcfi_debug=$cfi_debug \
         -Dmalloc=$malloc -Dmalloc_trim=$malloc_trim -Dsparse=$sparse \
@@ -5221,6 +5216,7 @@ else
     perl -i -ne '
       s/^gettext = true$/gettext = auto/;
       s/^gettext = false$/gettext = disabled/;
+      /^b_staticpic/ && next;
       print;' meson-private/cmd_line.txt
   fi
 fi
diff --git a/docs/meson.build b/docs/meson.build
index cffe1ecf1d..be4dc30f39 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -37,14 +37,14 @@ endif
 if build_docs
   SPHINX_ARGS += ['-Dversion=' + meson.project_version(), '-Drelease=' + config_host['PKGVERSION']]
 
-  sphinx_extn_depends = [ meson.source_root() / 'docs/sphinx/depfile.py',
-                          meson.source_root() / 'docs/sphinx/hxtool.py',
-                          meson.source_root() / 'docs/sphinx/kerneldoc.py',
-                          meson.source_root() / 'docs/sphinx/kernellog.py',
-                          meson.source_root() / 'docs/sphinx/qapidoc.py',
-                          meson.source_root() / 'docs/sphinx/qmp_lexer.py',
+  sphinx_extn_depends = [ meson.current_source_dir() / 'sphinx/depfile.py',
+                          meson.current_source_dir() / 'sphinx/hxtool.py',
+                          meson.current_source_dir() / 'sphinx/kerneldoc.py',
+                          meson.current_source_dir() / 'sphinx/kernellog.py',
+                          meson.current_source_dir() / 'sphinx/qapidoc.py',
+                          meson.current_source_dir() / 'sphinx/qmp_lexer.py',
                           qapi_gen_depends ]
-  sphinx_template_files = [ meson.source_root() / 'docs/_templates/footer.html' ]
+  sphinx_template_files = [ meson.project_source_root() / 'docs/_templates/footer.html' ]
 
   have_ga = have_tools and config_host.has_key('CONFIG_GUEST_AGENT')
 
diff --git a/meson.build b/meson.build
index 2711cbb789..3945a6cc2d 100644
--- a/meson.build
+++ b/meson.build
@@ -1,14 +1,10 @@
-project('qemu', ['c'], meson_version: '>=0.55.0',
-        default_options: ['warning_level=1', 'c_std=gnu11', 'cpp_std=gnu++11', 'b_colorout=auto'] +
-                         (meson.version().version_compare('>=0.56.0') ? [ 'b_staticpic=false' ] : []),
-        version: run_command('head', meson.source_root() / 'VERSION').stdout().strip())
+project('qemu', ['c'], meson_version: '>=0.57.0',
+        default_options: ['warning_level=1', 'c_std=gnu11', 'cpp_std=gnu++11', 'b_colorout=auto',
+                          'b_staticpic=false'],
+        version: files('VERSION'))
 
 not_found = dependency('', required: false)
-if meson.version().version_compare('>=0.56.0')
-  keyval = import('keyval')
-else
-  keyval = import('unstable-keyval')
-endif
+keyval = import('keyval')
 ss = import('sourceset')
 fs = import('fs')
 
@@ -1963,21 +1959,21 @@ genh += configure_file(output: 'config-host.h', configuration: config_host_data)
 hxtool = find_program('scripts/hxtool')
 shaderinclude = find_program('scripts/shaderinclude.pl')
 qapi_gen = find_program('scripts/qapi-gen.py')
-qapi_gen_depends = [ meson.source_root() / 'scripts/qapi/__init__.py',
-                     meson.source_root() / 'scripts/qapi/commands.py',
-                     meson.source_root() / 'scripts/qapi/common.py',
-                     meson.source_root() / 'scripts/qapi/error.py',
-                     meson.source_root() / 'scripts/qapi/events.py',
-                     meson.source_root() / 'scripts/qapi/expr.py',
-                     meson.source_root() / 'scripts/qapi/gen.py',
-                     meson.source_root() / 'scripts/qapi/introspect.py',
-                     meson.source_root() / 'scripts/qapi/parser.py',
-                     meson.source_root() / 'scripts/qapi/schema.py',
-                     meson.source_root() / 'scripts/qapi/source.py',
-                     meson.source_root() / 'scripts/qapi/types.py',
-                     meson.source_root() / 'scripts/qapi/visit.py',
-                     meson.source_root() / 'scripts/qapi/common.py',
-                     meson.source_root() / 'scripts/qapi-gen.py'
+qapi_gen_depends = [ meson.current_source_dir() / 'scripts/qapi/__init__.py',
+                     meson.current_source_dir() / 'scripts/qapi/commands.py',
+                     meson.current_source_dir() / 'scripts/qapi/common.py',
+                     meson.current_source_dir() / 'scripts/qapi/error.py',
+                     meson.current_source_dir() / 'scripts/qapi/events.py',
+                     meson.current_source_dir() / 'scripts/qapi/expr.py',
+                     meson.current_source_dir() / 'scripts/qapi/gen.py',
+                     meson.current_source_dir() / 'scripts/qapi/introspect.py',
+                     meson.current_source_dir() / 'scripts/qapi/parser.py',
+                     meson.current_source_dir() / 'scripts/qapi/schema.py',
+                     meson.current_source_dir() / 'scripts/qapi/source.py',
+                     meson.current_source_dir() / 'scripts/qapi/types.py',
+                     meson.current_source_dir() / 'scripts/qapi/visit.py',
+                     meson.current_source_dir() / 'scripts/qapi/common.py',
+                     meson.current_source_dir() / 'scripts/qapi-gen.py'
 ]
 
 tracetool = [
@@ -2624,14 +2620,14 @@ foreach target : target_dirs
   if target.endswith('-softmmu')
     execs = [{
       'name': 'qemu-system-' + target_name,
-      'gui': false,
+      'win_subsystem': 'console',
       'sources': files('softmmu/main.c'),
       'dependencies': []
     }]
     if targetos == 'windows' and (sdl.found() or gtk.found())
       execs += [{
         'name': 'qemu-system-' + target_name + 'w',
-        'gui': true,
+        'win_subsystem': 'windows',
         'sources': files('softmmu/main.c'),
         'dependencies': []
       }]
@@ -2640,7 +2636,7 @@ foreach target : target_dirs
       specific_fuzz = specific_fuzz_ss.apply(config_target, strict: false)
       execs += [{
         'name': 'qemu-fuzz-' + target_name,
-        'gui': false,
+        'win_subsystem': 'console',
         'sources': specific_fuzz.sources(),
         'dependencies': specific_fuzz.dependencies(),
       }]
@@ -2648,7 +2644,7 @@ foreach target : target_dirs
   else
     execs = [{
       'name': 'qemu-' + target_name,
-      'gui': false,
+      'win_subsystem': 'console',
       'sources': [],
       'dependencies': []
     }]
@@ -2667,7 +2663,7 @@ foreach target : target_dirs
                link_language: link_language,
                link_depends: [block_syms, qemu_syms] + exe.get('link_depends', []),
                link_args: link_args,
-               gui_app: exe['gui'])
+               win_subsystem: exe['win_subsystem'])
 
     if targetos == 'darwin'
       icon = 'pc-bios/qemu.rsrc'
diff --git a/plugins/meson.build b/plugins/meson.build
index bfd5c9822a..aeb386ebae 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -2,9 +2,9 @@ plugin_ldflags = []
 # Modules need more symbols than just those in plugins/qemu-plugins.symbols
 if not enable_modules
   if 'CONFIG_HAS_LD_DYNAMIC_LIST' in config_host
-    plugin_ldflags = ['-Wl,--dynamic-list=' + (meson.build_root() / 'qemu-plugins-ld.symbols')]
+    plugin_ldflags = ['-Wl,--dynamic-list=' + (meson.project_build_root() / 'qemu-plugins-ld.symbols')]
   elif 'CONFIG_HAS_LD_EXPORTED_SYMBOLS_LIST' in config_host
-    plugin_ldflags = ['-Wl,-exported_symbols_list,' + (meson.build_root() / 'qemu-plugins-ld64.symbols')]
+    plugin_ldflags = ['-Wl,-exported_symbols_list,' + (meson.project_build_root() / 'qemu-plugins-ld64.symbols')]
   endif
 endif
 
diff --git a/scripts/mtest2make.py b/scripts/mtest2make.py
index ee072c0502..02c0453e67 100644
--- a/scripts/mtest2make.py
+++ b/scripts/mtest2make.py
@@ -60,11 +60,8 @@ def process_tests(test, targets, suites):
     if test['workdir'] is not None:
         print('.test.dir.%d := %s' % (i, shlex.quote(test['workdir'])))
 
-    if 'depends' in test:
-        deps = (targets.get(x, []) for x in test['depends'])
-        deps = itertools.chain.from_iterable(deps)
-    else:
-        deps = ['all']
+    deps = (targets.get(x, []) for x in test['depends'])
+    deps = itertools.chain.from_iterable(deps)
 
     print('.test.name.%d := %s' % (i, test['name']))
     print('.test.driver.%d := %s' % (i, driver))
diff --git a/tests/qapi-schema/meson.build b/tests/qapi-schema/meson.build
index 6b2a4ce41a..6a08d23ce8 100644
--- a/tests/qapi-schema/meson.build
+++ b/tests/qapi-schema/meson.build
@@ -1,5 +1,5 @@
 test_env = environment()
-test_env.set('PYTHONPATH', meson.source_root() / 'scripts')
+test_env.set('PYTHONPATH', meson.project_source_root() / 'scripts')
 test_env.set('PYTHONIOENCODING', 'utf-8')
 
 schemas = [
@@ -253,7 +253,7 @@ if build_docs
                                # clutter up the build dir with the cache.
                                command: [SPHINX_ARGS,
                                          '-b', 'text', '-E',
-                                         '-c', meson.source_root() / 'docs',
+                                         '-c', meson.project_source_root() / 'docs',
                                          '-D', 'master_doc=doc-good',
                                          meson.current_source_dir(),
                                          meson.current_build_dir()])
diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
index 757bb8499a..e1f4df3df8 100644
--- a/tests/qtest/meson.build
+++ b/tests/qtest/meson.build
@@ -275,7 +275,7 @@ foreach dir : target_dirs
     qtest_env.set('QTEST_QEMU_IMG', './qemu-img')
     test_deps += [qemu_img]
   endif
-  qtest_env.set('G_TEST_DBUS_DAEMON', meson.source_root() / 'tests/dbus-vmstate-daemon.sh')
+  qtest_env.set('G_TEST_DBUS_DAEMON', meson.project_source_root() / 'tests/dbus-vmstate-daemon.sh')
   qtest_env.set('QTEST_QEMU_BINARY', './qemu-system-' + target_base)
   if have_tools and have_vhost_user_blk_server
     qtest_env.set('QTEST_QEMU_STORAGE_DAEMON_BINARY', './storage-daemon/qemu-storage-daemon')
diff --git a/tests/unit/meson.build b/tests/unit/meson.build
index 5736d285b2..7c297d7e5c 100644
--- a/tests/unit/meson.build
+++ b/tests/unit/meson.build
@@ -43,7 +43,7 @@ tests = {
   'test-keyval': [testqapi],
   'test-logging': [],
   'test-uuid': [],
-  'ptimer-test': ['ptimer-test-stubs.c', meson.source_root() / 'hw/core/ptimer.c'],
+  'ptimer-test': ['ptimer-test-stubs.c', meson.project_source_root() / 'hw/core/ptimer.c'],
   'test-qapi-util': [],
 }
 
diff --git a/trace/meson.build b/trace/meson.build
index e401e7c415..b8f95de200 100644
--- a/trace/meson.build
+++ b/trace/meson.build
@@ -4,7 +4,7 @@ specific_ss.add(files('control-target.c'))
 trace_events_files = []
 dtrace = find_program('dtrace', required: 'CONFIG_TRACE_DTRACE' in config_host)
 foreach dir : [ '.' ] + trace_events_subdirs
-  trace_events_file = meson.source_root() / dir / 'trace-events'
+  trace_events_file = meson.project_source_root() / dir / 'trace-events'
   trace_events_files += [ trace_events_file ]
   group_name = dir == '.' ? 'root' : dir.underscorify()
   group = '--group=' + group_name
@@ -70,7 +70,7 @@ foreach d : [
 ]
   gen = custom_target(d[0],
                 output: d[0],
-                input: meson.source_root() / 'trace-events',
+                input: meson.project_source_root() / 'trace-events',
                 command: [ tracetool, '--group=root', '--format=@0@'.format(d[1]), '@INPUT@', '@OUTPUT@' ],
                 depend_files: tracetool_depends)
   specific_ss.add(when: 'CONFIG_TCG', if_true: gen)
-- 
2.31.1




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

* [PULL 3/3] hexagon: use env keyword argument to pass PYTHONPATH
  2021-09-18  9:31 [PULL 0/3] Update meson version Paolo Bonzini
  2021-09-18  9:31 ` [PULL 1/3] meson: bump submodule to 0.58.2 Paolo Bonzini
  2021-09-18  9:31 ` [PULL 2/3] meson: switch minimum meson version " Paolo Bonzini
@ 2021-09-18  9:31 ` Paolo Bonzini
  2021-09-21 12:40 ` [PULL 0/3] Update meson version Peter Maydell
  3 siblings, 0 replies; 11+ messages in thread
From: Paolo Bonzini @ 2021-09-18  9:31 UTC (permalink / raw)
  To: qemu-devel

This feature is new in meson 0.57 and allows getting rid of the "env" wrapper.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 target/hexagon/meson.build | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build
index 6fd9360b74..c6d858ffb2 100644
--- a/target/hexagon/meson.build
+++ b/target/hexagon/meson.build
@@ -156,7 +156,8 @@ dectree_generated = custom_target(
     'dectree_generated.h.inc',
     output: 'dectree_generated.h.inc',
     depends: [iset_py],
-    command: ['env', 'PYTHONPATH=' + meson.current_build_dir(), files('dectree.py'), '@OUTPUT@'],
+    env: {'PYTHONPATH': meson.current_build_dir()},
+    command: [python, files('dectree.py'), '@OUTPUT@'],
 )
 hexagon_ss.add(dectree_generated)
 
-- 
2.31.1



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

* Re: [PULL 0/3] Update meson version
  2021-09-18  9:31 [PULL 0/3] Update meson version Paolo Bonzini
                   ` (2 preceding siblings ...)
  2021-09-18  9:31 ` [PULL 3/3] hexagon: use env keyword argument to pass PYTHONPATH Paolo Bonzini
@ 2021-09-21 12:40 ` Peter Maydell
  2021-09-21 12:48   ` Daniel P. Berrangé
                     ` (3 more replies)
  3 siblings, 4 replies; 11+ messages in thread
From: Peter Maydell @ 2021-09-21 12:40 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: QEMU Developers

On Sat, 18 Sept 2021 at 10:34, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 831aaf24967a49d7750090b9dcfd6bf356f16529:
>
>   Merge remote-tracking branch 'remotes/marcandre/tags/misc-pull-request' into staging (2021-09-14 18:14:56 +0100)
>
> are available in the Git repository at:
>
>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to ccc3f971c37bd2202a21abc9f0be093f10426364:
>
>   hexagon: use env keyword argument to pass PYTHONPATH (2021-09-15 09:12:55 +0200)
>
> ----------------------------------------------------------------
> * Update Meson to 0.58.2
>
> ----------------------------------------------------------------
> Paolo Bonzini (3):
>       meson: bump submodule to 0.58.2
>       meson: switch minimum meson version to 0.58.2
>       hexagon: use env keyword argument to pass PYTHONPATH

So, I tried merging this, ran into some "is this an issue with this
pullreq or is it just an intermittent or infrastructure" issues,
and decided to postpone the merge for a bit and retry it later.

It has made an absolute mess of my incremental build setups.
They now all fail with errors like this, even after having blown
away the build directory and re-created it:

Darwin manooth.archaic.org.uk 19.6.0 x86_64
make: Entering directory '/Users/pm215/src/qemu-for-merges/build/all'
/usr/local/bin/ninja  build.ninja && touch build.ninja.stamp
  GIT     ui/keycodemapdb meson tests/fp/berkeley-testfloat-3
tests/fp/berkeley-softfloat-3 dtc capstone slirp
[0/1] Regenerating build files.
Traceback (most recent call last):
  File "/Users/pm215/src/qemu-for-merges/meson/mesonbuild/mesonmain.py",
line 140, in run
    return options.run_func(options)
  File "/Users/pm215/src/qemu-for-merges/meson/mesonbuild/msetup.py",
line 245, in run
    app.generate()
  File "/Users/pm215/src/qemu-for-merges/meson/mesonbuild/msetup.py",
line 154, in generate
    env = environment.Environment(self.source_dir, self.build_dir, self.options)
  File "/Users/pm215/src/qemu-for-merges/meson/mesonbuild/environment.py",
line 523, in __init__
    self.coredata = coredata.load(self.get_build_dir())
  File "/Users/pm215/src/qemu-for-merges/meson/mesonbuild/coredata.py",
line 1016, in load
    obj = pickle.load(f)
ModuleNotFoundError: No module named 'mesonbuild.mesonlib.universal';
'mesonbuild.mesonlib' is not a package
FAILED: build.ninja

Is there anything that can be done to make meson version bumps
not a horrific pain to back out ? This seems to go wrong pretty
much every time.

thanks
-- PMM


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

* Re: [PULL 0/3] Update meson version
  2021-09-21 12:40 ` [PULL 0/3] Update meson version Peter Maydell
@ 2021-09-21 12:48   ` Daniel P. Berrangé
  2021-09-21 12:55     ` Peter Maydell
  2021-09-21 13:12   ` Paolo Bonzini
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Daniel P. Berrangé @ 2021-09-21 12:48 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Paolo Bonzini, QEMU Developers

On Tue, Sep 21, 2021 at 01:40:36PM +0100, Peter Maydell wrote:
> On Sat, 18 Sept 2021 at 10:34, Paolo Bonzini <pbonzini@redhat.com> wrote:
> >
> > The following changes since commit 831aaf24967a49d7750090b9dcfd6bf356f16529:
> >
> >   Merge remote-tracking branch 'remotes/marcandre/tags/misc-pull-request' into staging (2021-09-14 18:14:56 +0100)
> >
> > are available in the Git repository at:
> >
> >   https://gitlab.com/bonzini/qemu.git tags/for-upstream
> >
> > for you to fetch changes up to ccc3f971c37bd2202a21abc9f0be093f10426364:
> >
> >   hexagon: use env keyword argument to pass PYTHONPATH (2021-09-15 09:12:55 +0200)
> >
> > ----------------------------------------------------------------
> > * Update Meson to 0.58.2
> >
> > ----------------------------------------------------------------
> > Paolo Bonzini (3):
> >       meson: bump submodule to 0.58.2
> >       meson: switch minimum meson version to 0.58.2
> >       hexagon: use env keyword argument to pass PYTHONPATH
> 
> So, I tried merging this, ran into some "is this an issue with this
> pullreq or is it just an intermittent or infrastructure" issues,
> and decided to postpone the merge for a bit and retry it later.
> 
> It has made an absolute mess of my incremental build setups.
> They now all fail with errors like this, even after having blown
> away the build directory and re-created it:

Might want to 'git submodule deinit --all --force' to purge
all currently checked out submodules, so it'll then re-init
them in a clean (older) state. In theory this should be handled
by the git-submodule.sh script we have in QEMU, but 'deinit' is
a big hammer to try if wierd things appear to be happening
despite cleaning the build dir.

> Is there anything that can be done to make meson version bumps
> not a horrific pain to back out ? This seems to go wrong pretty
> much every time.

Save your previous 'build' directory contents somewhere safe
and record the submodule checkout hashes, so they can be
reset to that ?


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



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

* Re: [PULL 0/3] Update meson version
  2021-09-21 12:48   ` Daniel P. Berrangé
@ 2021-09-21 12:55     ` Peter Maydell
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2021-09-21 12:55 UTC (permalink / raw)
  To: Daniel P. Berrangé; +Cc: Paolo Bonzini, QEMU Developers

On Tue, 21 Sept 2021 at 13:48, Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Tue, Sep 21, 2021 at 01:40:36PM +0100, Peter Maydell wrote:
> > Is there anything that can be done to make meson version bumps
> > not a horrific pain to back out ? This seems to go wrong pretty
> > much every time.
>
> Save your previous 'build' directory contents somewhere safe
> and record the submodule checkout hashes, so they can be
> reset to that ?

I want this fixed on the Meson end, because if I run into this
kind of thing while testing and then backing out pull requests
then it seems quite likely that it will also happen to people
as they try to bisect across the merge once it eventually gets
into git.

-- PMM


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

* Re: [PULL 0/3] Update meson version
  2021-09-21 12:40 ` [PULL 0/3] Update meson version Peter Maydell
  2021-09-21 12:48   ` Daniel P. Berrangé
@ 2021-09-21 13:12   ` Paolo Bonzini
  2021-09-21 13:14   ` Paolo Bonzini
  2021-09-22 18:22   ` Peter Maydell
  3 siblings, 0 replies; 11+ messages in thread
From: Paolo Bonzini @ 2021-09-21 13:12 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers

On 21/09/21 14:40, Peter Maydell wrote:
> Is there anything that can be done to make meson version bumps
> not a horrific pain to back out ? This seems to go wrong pretty
> much every time.

Downgrading works fine in 0.58 and newer releases, but the fix is not in 
0.55.x.  The reason why it goes wrong every time is that we've never 
updated past a version that has the fix.

What were the issues?

Paolo


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

* Re: [PULL 0/3] Update meson version
  2021-09-21 12:40 ` [PULL 0/3] Update meson version Peter Maydell
  2021-09-21 12:48   ` Daniel P. Berrangé
  2021-09-21 13:12   ` Paolo Bonzini
@ 2021-09-21 13:14   ` Paolo Bonzini
  2021-09-22 18:22   ` Peter Maydell
  3 siblings, 0 replies; 11+ messages in thread
From: Paolo Bonzini @ 2021-09-21 13:14 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers

On 21/09/21 14:40, Peter Maydell wrote:
> even after having blown
> away the build directory and re-created it:

Doesn't look like you fully blew away the build directory though.

Paolo


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

* Re: [PULL 0/3] Update meson version
  2021-09-21 12:40 ` [PULL 0/3] Update meson version Peter Maydell
                     ` (2 preceding siblings ...)
  2021-09-21 13:14   ` Paolo Bonzini
@ 2021-09-22 18:22   ` Peter Maydell
  2021-09-23  8:25     ` Paolo Bonzini
  3 siblings, 1 reply; 11+ messages in thread
From: Peter Maydell @ 2021-09-22 18:22 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: QEMU Developers

On Tue, 21 Sept 2021 at 13:40, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Sat, 18 Sept 2021 at 10:34, Paolo Bonzini <pbonzini@redhat.com> wrote:
> >
> > The following changes since commit 831aaf24967a49d7750090b9dcfd6bf356f16529:
> >
> >   Merge remote-tracking branch 'remotes/marcandre/tags/misc-pull-request' into staging (2021-09-14 18:14:56 +0100)
> >
> > are available in the Git repository at:
> >
> >   https://gitlab.com/bonzini/qemu.git tags/for-upstream
> >
> > for you to fetch changes up to ccc3f971c37bd2202a21abc9f0be093f10426364:
> >
> >   hexagon: use env keyword argument to pass PYTHONPATH (2021-09-15 09:12:55 +0200)
> >
> > ----------------------------------------------------------------
> > * Update Meson to 0.58.2
> >
> > ----------------------------------------------------------------
> > Paolo Bonzini (3):
> >       meson: bump submodule to 0.58.2
> >       meson: switch minimum meson version to 0.58.2
> >       hexagon: use env keyword argument to pass PYTHONPATH
>
> So, I tried merging this, ran into some "is this an issue with this
> pullreq or is it just an intermittent or infrastructure" issues,
> and decided to postpone the merge for a bit and retry it later.

I had another go at this. As far as I can tell it causes all
the vm-build-{openbsd,netbsd,freebsd} build-and-tests to hang.
At any rate the VMs are sat there eating host CPU.
Does 'make vm-build-freebsd' etc work for you ?

-- PMM


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

* Re: [PULL 0/3] Update meson version
  2021-09-22 18:22   ` Peter Maydell
@ 2021-09-23  8:25     ` Paolo Bonzini
  0 siblings, 0 replies; 11+ messages in thread
From: Paolo Bonzini @ 2021-09-23  8:25 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers

On 22/09/21 20:22, Peter Maydell wrote:
> I had another go at this. As far as I can tell it causes all
> the vm-build-{openbsd,netbsd,freebsd} build-and-tests to hang.
> At any rate the VMs are sat there eating host CPU.
> Does 'make vm-build-freebsd' etc work for you ?

It has been hanging for some time but I hadn't debugged it until now. 
It's caused by a missing dependency that causes bios-tables-test to fail 
(badly).  It's plausible that the meson upgrade triggered a different 
build ordering for make/ninja, and made it hang for you as well.

There was also a related bug that caused the test to hang if bzip2 was 
not available.

Paolo


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

end of thread, other threads:[~2021-09-23  8:26 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-18  9:31 [PULL 0/3] Update meson version Paolo Bonzini
2021-09-18  9:31 ` [PULL 1/3] meson: bump submodule to 0.58.2 Paolo Bonzini
2021-09-18  9:31 ` [PULL 2/3] meson: switch minimum meson version " Paolo Bonzini
2021-09-18  9:31 ` [PULL 3/3] hexagon: use env keyword argument to pass PYTHONPATH Paolo Bonzini
2021-09-21 12:40 ` [PULL 0/3] Update meson version Peter Maydell
2021-09-21 12:48   ` Daniel P. Berrangé
2021-09-21 12:55     ` Peter Maydell
2021-09-21 13:12   ` Paolo Bonzini
2021-09-21 13:14   ` Paolo Bonzini
2021-09-22 18:22   ` Peter Maydell
2021-09-23  8:25     ` Paolo Bonzini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.