question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Discussion] Update Meson in Ubuntu 18.04 to a newer version

See original GitHub issue

I am creating this report in meson repo only because I noticed @jpakkane is a package maintainer for meson in Ubuntu; if it’s more appropriate to have this discussion in Ubuntu mailing list then let me know or just close this report.

Background

In dosbox-staging project, we are migrating away from autotools to Meson and so far it’s going great - thank you so much to the whole Meson team for creating such robust and well-designed tool 😃 We still encounter some quirks and edge cases here and there - I will be reporting them once I will be 100% sure they are meson problems.

The biggest problem we’re facing during migration is: we strongly prefer to use meson provided by OS rather than downloading from pip - it makes packager’s lifes easier and we avoid problems when running builds in Docker, where pip sometimes fails (for various reasons).

Context: for our testers we provide cross-distro builds (binaries packaged in tarballs - they work in any distro because we are very careful about ABIs we depend on) - the key for having those builds working is making them on the oldest stable distribution. In the past it meant targeting Debian Stable, later we moved on to Ubuntu 16.04 LTS, but it’s closing to EOL so we moved on to Ubuntu 18.04 recently (which we’ll likely to target for several years now).

This means we are bound to the Meson features available in version 0.45.1… Some very useful features that are missing from this version are:

  • dictionaries (meson >= 0.47.0)
  • support for in operator for lists and dictionaries (meson >= 0.49.0)
  • support for break and continue statement in loops (meson >= 0.49.0)
  • support for not_found_message keyword for dependencies (not documented when this feature was added)
  • support for ppc64 machine cpu family (it’s named ppc64le - this might be a bug, I’m not sure - it contradicts documentation).

Wider context

At the moment, Ubuntu 18.04 LTS provides meson 0.45.1 - with exception of 16.04 this seems to be the oldest generally available version. In a few months, Ubuntu 16.04 LTS (using meson 0.29.0 ATM) will reach EOL and 18.04 LTS will become the oldest free offering by Canonical. Subsequently, we can expect 18.04 will soon be the oldest Linux image picked by various CI providers (it already is the default e.g. on GitHub CI), and will likely be the base for numerous other Linux distributions.

I think updating Meson in Ubuntu 18.04 to a newer version would be very valuable throughout the whole ecosystem:

  • Large and important projects like Mesa, systemd, or Gnome could start using features from newer Meson versions, and people working on backports to older distros would have a much easier time.
  • Having features like dictionaries and break/continue keywords available in practically any installation out there makes it easier for new projects to migrate to Meson.
  • People extending/upgrading existing meson buildsystems could probably replace complicated if-else logic with more readable use of loop+dictionary+break

Meson versions in various “stabler” repositories as of January 2021

  • CentOS 8: meson 0.49.3
  • Debian Stable (and various derivatives like Raspbian Stable): meson 0.49.2
  • EPEL 7: meson 0.55.1
  • Fedora 31 (soon reaching EOL): meson 0.51.2
  • openSUSE Leap 15.2 (15.1 is reaching EOL): meson 0.54.2

I do not suggest going straight to the newest version, but rather sticking to the older, stable one - 0.49 seems to be a good candidate. I bet @jpakkane will know the best which version would be the most appropriate in this context.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:10 (10 by maintainers)

github_iconTop GitHub Comments

1reaction
xclaessecommented, Jan 24, 2021

Let’s close this issue then, it’s for downstream.

0reactions
dreamercommented, Jan 25, 2021

@eli-schwartz Thanks! I will just update comment in my code to point out that ppc64le is for meson < 0.47.2 and when we’ll eventually require newer meson version for compiling dosbox-staging, I’ll drop the line entirely.

For the context: we don’t have / know about any users of 64-bit PPC big-endian. Keeping the architecture name clean and avoiding le suffix was a good choice IMHO (after all there’s no mipsle, so why there should be ppc64le).

Read more comments on GitHub >

github_iconTop Results From Across the Web

Update meson on Ubuntu 18.04.4 LTS -- force update
I upgraded meson from https://github.com/mesonbuild/meson.git and added it in front of my $PATH , but some scripts seem to use a hardcoded path ......
Read more >
Request: Update meson in 18.04 to newer version
If you want a newer version of meson, then you should upgrade to a newer Ubuntu release that contains that version (or a...
Read more >
Meson wont update · Issue #2380 - GitHub
Ok, first I installed meson version 0.37.1 but then I realised I couldnt do ninja command. So I wanted to upgrade to upper...
Read more >
Building - Gramine documentation - Read the Docs
Gramine is currently tested on Ubuntu 18.04/20.04, along with Linux kernel version 5.x. We recommend building and installing Gramine on Ubuntu with Linux ......
Read more >
Siril:install - FreeAstro
Generic build process. Siril can be compiled either using autotools or meson. Meson. The newer (since version 0.99.4) way is ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found