meson: 0.57.1 -> 0.60.3, gst-plugins-base 1.18.4 -> 1.18.5#144779
meson: 0.57.1 -> 0.60.3, gst-plugins-base 1.18.4 -> 1.18.5#144779Princemachiavelli wants to merge 15 commits intoNixOS:stagingfrom
Conversation
|
Hey, I'm very new to Nix but I'm currently trying to move my dev environment over to use Nix packages. However, I need meson ~v0.59.1 which is how I came across this PR. I thought it would just be a matter of changing the version in the Also, is there anything I can do to help with this PR? |
|
Hi @cdunster, you probably want to ask this on IRC/Matrix/discourse. In short through Nix lets you have multiple versions of any package in the store, and for development it's not uncommon to want different versions between projects. I'm using NixOS, so what I typically do for development is create a
Doing something like this would allow you to use this version just for your code. If you add a package that is built with an older meson (like the other files in the PR) then that package will continue to work as expected. As for the why, I'm not sure, but I know wlroots couldn't be updated until meson was updated. This led me to use an overlay to be able to do some bug hunting with sway. |
pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch
Outdated
Show resolved
Hide resolved
|
Sorry for the delay on this, I got distracted and there was an upstream change to meson that required updating one of the patches (I'll annotate that in case anyone wants to review that). Also, there is a pretty big change in meson 0.60; unknown options passed to Practically this means that a lot more projects are going to break because it's been a common problem that packages accumulate meson build options more than we remove old/non-existent options. This means that this change will help us clean up a lot of packages but it also is going to be more hydra failures to fix even if the process is straightforward. |
There was a problem hiding this comment.
Upstream added type hinting to the get_custom_install_dir function so now it is a optional type containing a tupple (str,bool). This change also changed the default/null case; previously the default return value would be [None] but now the default case is simple an empty list [].
If a python-guru knows how to handle a empty set within a list comprehension, we could certainly make this less verbose. Also if anyone has any preference on how the patch is written such as how the empty list check is done or anything like that, I'm all ears.
There was a problem hiding this comment.
We could use [girtarget.get_custom_install_dir()[0] for girtarget in girtargets if girtarget.get_custom_install_dir() is not None]
There was a problem hiding this comment.
We do not even need the square brackets as Python supports set comprehensions.
There was a problem hiding this comment.
Thanks I forgot a clause could be added to the end of the list/set comprehension. I went with just set(girtarget.get_custom_install_dir()[0] for girtarget in girtargets if girtarget.get_custom_install_dir()).
There was a problem hiding this comment.
Example case where we had an incorrect/outdated name of a meson option. What's difficult to know in this case is whether the two options are actually identical in function. It's also pretty common for software to have a lot of similar options (look at the EFI related settings below... some could easily be confused with each other).
There was a problem hiding this comment.
Doesn't look like systemd ever had a "cryptsetup" option, only "libcryptsetup".
There was a problem hiding this comment.
Case where we had a non-existent build option. What is hard to know is whether we needed that build option in for compatibility on Nix. i.e. did systemd start hard coding the path to kill or did they implement kill inside of systemd?
There was a problem hiding this comment.
They implemented kill inside systemd.
Identified with git log -pG kill-path in the systemd repo.
fcb29ab to
87ebf7d
Compare
8306d46 to
06f943a
Compare
|
Could you separate the Meson and Gstreamer changes into separate commits, and give 23dbcfc0cf59260b51fd16e8cb905c27979d9a96 a Nixpkgs-style commit message please? |
|
Actually, the Meson stuff should probably all be squashed into a single commit anyway. |
|
shared-mime-info fails to build with Meson ≥0.60.0. There's a fix in progress upstream, but it's quite a big change and difficult to backport, so I think we should wait and see what happens. Last activity was only a couple of days ago anyway. |
|
@vcunat could we maybe get a Hydra jobset for this? There are a bunch of incompatible changes that are breaking packages, and it's going to be hard to find them all otherwise. |
da8f786 to
6bcdb7c
Compare
|
Yes in principle, but it's a matter of priorities / time. I know of two similar feature-jobsets that were paused in the past couple weeks due to Hydra being overloaded a bit. (It's quite common at periods around forking a release.) |
|
I cherry-picked these commits on top of nixpkgs, but cross-compiling e.g. iputils fails:
(Excerpt from) error logI don't know if this is a regression in meson or in the packaging, but this will potentially break quite some cross-compilable packages as-is. I don't really have a list of other things I tried, but I tried some other packages on another day and those resulted in similar errors. |
There are still some references to meson_0_60 that need to be cleaned up.pkgs/applications/misc/metadata-cleaner/default.nix:12:, meson_0_60
pkgs/applications/misc/metadata-cleaner/default.nix:38: meson_0_60
pkgs/development/libraries/libadwaita/default.nix:8:, meson_0_60
pkgs/development/libraries/libadwaita/default.nix:42: meson_0_60
pkgs/development/libraries/wlroots/0.15.nix:1:{ lib, stdenv, fetchFromGitLab, meson_0_60, ninja, pkg-config, wayland-scanner
pkgs/development/libraries/wlroots/0.15.nix:26: nativeBuildInputs = [ meson_0_60 ninja pkg-config wayland-scanner ];
|
The end goal is to get rid of old Meson. The other PR is to insert meson 0.60.x without disrupting the entire package base with unseen incompatibilities or mass rebuilds. The next steps should be:
I have created a new issue addressing this specifically: #153082 (closed because the changes are huge to be handled by ofborg) |
|
More |
|
Instead of this huge PR that updates a bunch of things at once, what about flipping around the |
|
Seeing that this PR is almost done I instead made #154172 to try to fix the remaining issues. |
683688f to
fc9605a
Compare
added graphviz build input for compatability with meson >=0.57.2 see PR meson#8641
We need https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/162 ("migrate from itstool to msgfmt for creating translated XML") to fix the build with Meson 0.60.0. Signed-off-by: Patrick Hilhorst <git@hilhorst.be>
fc9605a to
5440531
Compare
|
Merged as #154172 since it had a history cleanup. Thanks @Princemachiavelli for all your hard work! |
Motivation for this change
Replaces #140545 and this can be looked at after the current ZHF cycle.
https://mesonbuild.com/Release-notes-for-0-60-0.html
Updated meson for compatibility with newer packages such as wlroots 0.16
Updated gst-plugins-base for compatibility with meson >= 0.58
I just stumbled upon the meson version issue when building gamescope since it requires wlroots 0.16. https://github.com/Plagman/gamescope
nixpkgs-review is in progress although it might end up being more than practical to run on a single machine. i.e it seems this will trigger a rebuild of >40,000 packages just looking at nixpkgs-review now. :/
I have built meson itself & gst-plugins-base without issue.
Closes #150486.
Things done
sandbox = trueset innix.conf? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"./result/bin/)