Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

meson: 0.60.3 -> 0.61.2 #154833

Merged
merged 1 commit into from
Mar 14, 2022
Merged

meson: 0.60.3 -> 0.61.2 #154833

merged 1 commit into from
Mar 14, 2022

Conversation

NickCao
Copy link
Member

@NickCao NickCao commented Jan 13, 2022

Motivation for this change

ref: #154708

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.05 Release Notes (or backporting 21.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@veprbl veprbl changed the title meson: 0.60.3 -> 0.61.0 [staging-next] meson: 0.60.3 -> 0.61.0 Jan 13, 2022
@bobby285271
Copy link
Member

bobby285271 commented Jan 13, 2022

Bumping meson to 0.61.0 will break most Pantheon packages without proper patching (mostly fails with "Function does not take positional arguments"). I opened #154837 (merged).

EDIT: Not trying to block this, but I am not sure if GNOME is also ready for this: #162938 #160128 #160126 #160283 #161241, though it should be quite trivial to fix similar issues.

@NickCao
Copy link
Member Author

NickCao commented Jan 13, 2022

I also noticed some regression when building glib natively, namely mesonbuild/meson#9807, that didn't make it the 0.60.0.

@NickCao NickCao marked this pull request as draft January 13, 2022 02:58
@jtojnar
Copy link
Member

jtojnar commented Jan 13, 2022

Reading the discussion in #144779 (comment), I thought we cherry-picked the patch. But perhaps it got forgotten in the mess caused by splitting the package.

@jtojnar
Copy link
Member

jtojnar commented Jan 13, 2022

@NickCao
Copy link
Member Author

NickCao commented Jan 13, 2022

@NickCao
Copy link
Member Author

NickCao commented Jan 14, 2022

harfbuzz breaks when cross building docs:

harfbuzz-riscv64-unknown-linux-gnu>     t_args.append('--run=' + ' '.join(state.environment.get_exe_wrapper().get_command()))
harfbuzz-riscv64-unknown-linux-gnu> AttributeError: 'NoneType' object has no attribute 'get_command'
harfbuzz-riscv64-unknown-linux-gnu> docs/meson.build:50:6: ERROR: Unhandled python exception
harfbuzz-riscv64-unknown-linux-gnu>     This is a Meson bug and should be reported!

can be worked around by disabling docs when crossing.

This seems to be a meson bug in handling exe wrappers,strangely the related codes are not modified recently.

@NickCao
Copy link
Member Author

NickCao commented Jan 14, 2022

@Mindavi
Copy link
Contributor

Mindavi commented Jan 14, 2022

Yeah, either this or at least adding the cross-compilation patch would be nice. Adding the patch is probably 'safer' for now, but I don't know what the breakage for the meson bump actually is. Reading this thread it might be painful regardless of what we choose.

@alyssais
Copy link
Member

Yeah, I think we should just apply the patch like the original PR did to unblock staging next, and then retarget this to staging where there's a bit less time pressure.

@NickCao
Copy link
Member Author

NickCao commented Jan 15, 2022

meson 0.60 is actually as broken as 0.61, and there are already enough upstream fixes to apply at least for the critical packages. I'm more in favour of skipping 0.60.

@jtojnar
Copy link
Member

jtojnar commented Jan 15, 2022

Not sure what you mean. Both glib and gobject-introspection seem to build in native compilation with 0.60.

@NickCao
Copy link
Member Author

NickCao commented Jan 15, 2022

Not sure what you mean. Both glib and gobject-introspection seem to build in native compilation with 0.60.

My mistake, you are correct, let's just do as @alyssais said, bring back the lost patch and retarget this one.

@NickCao NickCao changed the base branch from staging-next to staging January 15, 2022 03:43
@NickCao NickCao changed the title [staging-next] meson: 0.60.3 -> 0.61.0 meson: 0.60.3 -> 0.61.0 Jan 15, 2022
@NickCao NickCao marked this pull request as ready for review January 15, 2022 03:43
@NickCao
Copy link
Member Author

NickCao commented Jan 26, 2022

is this in a reviewable state?

yes, still have to tackle with a bunch of build failures in the next staging-next cycle though, but meson itself should be good as is.

@ofborg ofborg bot requested a review from jtojnar January 26, 2022 02:04
@jtojnar
Copy link
Member

jtojnar commented Jan 26, 2022

@NickCao NickCao changed the title meson: 0.60.3 -> 0.61.1 meson: 0.60.3 -> 0.61.2 Feb 18, 2022
@alyssais
Copy link
Member

alyssais commented Mar 6, 2022

@jtojnar @AndersonTorres are you happy with this? The next meson release is scheduled for tomorrow, so would be great if we could get this in so we don't have to upgrade through multiple versions at once again.

@NickCao
Copy link
Member Author

NickCao commented Mar 7, 2022

Why not just wait for another day? Skipping a meson release looks like a benefit for us.

@AndersonTorres
Copy link
Member

If the next Meson is not a 0.62.x, then wait until tomorrow.

@NickCao
Copy link
Member Author

NickCao commented Mar 12, 2022

The newly tagged meson 0.62.0rc1 breaks glib even in native compilation, let's get this in staging and wait for the new meson release to brew.

@AndersonTorres
Copy link
Member

RC release?
Breaking even the easiest case?

Oh man...

@jtojnar
Copy link
Member

jtojnar commented Mar 12, 2022

polkit is still broken:

actions/meson.build:3:5: ERROR: Function does not take positional arguments.

Needs: https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/99

@AndersonTorres
Copy link
Member

Why is Darwin failing?

@NickCao
Copy link
Member Author

NickCao commented Mar 14, 2022

Why is Darwin failing?

Looks like dependency failures?

@vcunat
Copy link
Member

vcunat commented Mar 14, 2022

OfBorg build attempts are usually not much use when filing PRs against staging (or any branch without many binaries).

@AndersonTorres
Copy link
Member

That being said, I will merge this.

@AndersonTorres AndersonTorres merged commit 40affce into NixOS:staging Mar 14, 2022
@NickCao NickCao deleted the meson branch March 15, 2022 00:04
@trofi
Copy link
Contributor

trofi commented Mar 16, 2022

meld and gcr are also affected:

error: builder for '/nix/store/c10z65p2xbbawp2rkf4ckldkxw2vhb27-meld-3.21.1.drv' failed with exit code 1;
       last 10 log lines:
       > Configuring conf.py using configuration
       > Found pkg-config: /nix/store/hmqp1izgl9w66hi498g2yra9blxgkahi-pkg-config-wrapper-0.29.2/bin/pkg-config (0.29.2)
       > Program glib-compile-resources found: YES (/nix/store/s9y11yw1m3ymi29phfzgj589dgnqyn1r-glib-2.70.3-dev/bin/glib-compile-resources)
       > Configuring org.gnome.Meld.desktop.in using configuration
       > Program desktop-file-validate found: YES (/nix/store/ihlxnklqbi2c9862z1vq3rr7ay9i5gxx-desktop-file-utils-0.26/bin/desktop-file-validate)
       > Configuring org.gnome.meld.appdata.xml.in using configuration
       >
       > data/meson.build:34:0: ERROR: Function does not take positional arguments.
       >
       > A full log can be found at /build/meld-3.21.1/build/meson-logs/meson-log.txt
       For full logs, run 'nix log /nix/store/c10z65p2xbbawp2rkf4ckldkxw2vhb27-meld-3.21.1.drv'.
error: builder for '/nix/store/3zfnzk2xlq1nj62h80rks6m8vc7g4x40-gcr-3.41.0.drv' failed with exit code 1;
       last 10 log lines:
       > Configuring gck-version.h using configuration
       > Program glib-mkenums found: YES (/nix/store/s9y11yw1m3ymi29phfzgj589dgnqyn1r-glib-2.70.3-dev/bin/glib-mkenums)
       > Program glib-mkenums found: YES (/nix/store/s9y11yw1m3ymi29phfzgj589dgnqyn1r-glib-2.70.3-dev/bin/glib-mkenums)
       > Found pkg-config: /nix/store/hmqp1izgl9w66hi498g2yra9blxgkahi-pkg-config-wrapper-0.29.2/bin/pkg-config (0.29.2)
       > Program glib-genmarshal found: YES (/nix/store/s9y11yw1m3ymi29phfzgj589dgnqyn1r-glib-2.70.3-dev/bin/glib-genmarshal)
       > Compiler for C supports link arguments -Wl,--version-script,/build/gcr-3.41.0/gck/libgck.map: YES
       >
       > gck/meson.build:130:2: ERROR: gnome.generate_gir got unknown keyword arguments "packages"
       >
       > A full log can be found at /build/gcr-3.41.0/build/meson-logs/meson-log.txt
       For full logs, run 'nix log /nix/store/3zfnzk2xlq1nj62h80rks6m8vc7g4x40-gcr-3.41.0.drv'.

@bobby285271
Copy link
Member

Maybe we will need this patch for gcr.

For Function does not take positional arguments. we are thinking of patching meson with mesonbuild/meson@022c035, some discussion happens in #164266.

@NickCao
Copy link
Member Author

NickCao commented Mar 16, 2022

When would the next staging-next cycle begin? I would like to take a look at the blast radius before determining whether it's appropriate to patch meson (again). FYI, meson 0.61.3 was just released 2 days ago, nothing interesting though, jut a reminder.

@vcunat
Copy link
Member

vcunat commented Mar 16, 2022

It should be as soon as Hydra recovers from the openssl update. EDIT: around this weekend, I expect.

@trofi
Copy link
Contributor

trofi commented Mar 20, 2022

Proposed gcr fix as #164945

@trofi
Copy link
Contributor

trofi commented Mar 20, 2022

Proposed meld fix as #164948

@Mindavi
Copy link
Contributor

Mindavi commented Apr 14, 2022

Harfbuzz cross-compilation seems to have broken in this update, might investigate later.

Program gtkdoc-fixxref found: YES (/nix/store/yglq5bwhn1j3qpgv06hv4nbvgjinwik4-gtk-doc-1.33.2/bin/gtkdoc-fixxref)
Traceback (most recent call last):
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/mesonmain.py", line 146, in run
    return options.run_func(options)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/msetup.py", line 294, in run
    app.generate()
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/msetup.py", line 185, in generate
    self._generate(env)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/msetup.py", line 229, in _generate
    intr.run()
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreter/interpreter.py", line 2549, in run
    super().run()
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 148, in run
    self.evaluate_codeblock(self.ast, start=1)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 173, in evaluate_codeblock
    raise e
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 166, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 189, in evaluate_statement
    return self.evaluate_if(cur)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 272, in evaluate_if
    self.evaluate_codeblock(i.block)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 173, in evaluate_codeblock
    raise e
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 166, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 179, in evaluate_statement
    return self.function_call(cur)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 454, in function_call
    res = func(node, func_args, kwargs)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/decorators.py", line 276, in wrapper
    return f(*nargs, **wrapped_kwargs)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/decorators.py", line 573, in wrapper
    return f(*wrapped_args, **wrapped_kwargs)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreter/interpreter.py", line 2039, in func_subdir
    self.evaluate_codeblock(codeblock)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 173, in evaluate_codeblock
    raise e
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 166, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 183, in evaluate_statement
    return self.method_call(cur)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 482, in method_call
    res = obj.method_call(method_name, args, kwargs)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreter/interpreterobjects.py", line 761, in method_call
    ret = method(state, args, kwargs)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/decorators.py", line 276, in wrapper
    return f(*nargs, **wrapped_kwargs)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/interpreterbase/decorators.py", line 573, in wrapper
    return f(*wrapped_args, **wrapped_kwargs)
  File "/nix/store/54pqyk0ni1c1z6ywiba4vf30pa1q8rr8-meson-0.61.2/lib/python3.9/site-packages/mesonbuild/modules/gnome.py", line 1365, in gtkdoc
    t_args.append('--run=' + ' '.join(state.environment.get_exe_wrapper().get_command()))
AttributeError: 'NoneType' object has no attribute 'get_command'

docs/meson.build:50:6: ERROR: Unhandled python exception

    This is a Meson bug and should be reported!

Probably an upstream bug.

Edit: reverting meson works, so definitely feels like an upstream meson bug.
Edit 2: fixed by mesonbuild/meson#9841

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants