-
Notifications
You must be signed in to change notification settings - Fork 567
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
Switch from autotools to meson #4642
Comments
+1 |
@rusty-snake commented on Oct 26:
I find the core of the syntax of autotools and make to be rather simple. In I'll post a
I think it would be a great loss to break building with the traditional/more The benefits of supporting alternative build systems isn't very clear either. |
The syntax of
👍 Suggestion: https://github.com/netblue30/firejail/discussions/categories/show-and-tell
Two things to add (before you expand this)
|
I know not all are strong arguments / arguments for meson or against autotools in general
==> firejail is to small to see a big difference (if you type |
Also: + Automatic generation of pkg-config for code reusage in third-party projects.
Personally I would prefer a low-level build library, since that reduces code to a minimum, while sharing testing with most projects. But unfortunately the only project that attempts this (and a pile of other stuff) is a few years from stable. |
We currently also have a lot of redundancy in our I don't have much experience with meson, but from what I heard/read it's one of the better build systems. (Personally I find it only a bit annoying that it's needed to list all source files (afaik), instead of letting it use all sources in the directory.) But I'm fine with using either of them. |
https://mesonbuild.com/FAQ.html#why-cant-i-specify-target-files-with-a-wildcard |
Added on commit 1379851 ("Baseline firejail 0.9.28", 2015-08-08). See also commit ad6bb83 ("consolidate makefiles", 2018-03-31). It is not used anywhere. And it looks like it has never been used anywhere: $ git log --oneline -Gpthread.h 1379851..master $ Issue mentioned by @rusty-snake: netblue30#4642 (comment)
Added on commit 1379851 ("Baseline firejail 0.9.28", 2015-08-08). See also commit ad6bb83 ("consolidate makefiles", 2018-03-31). It is not used anywhere. And it looks like it has never been used anywhere: $ git log --oneline -Gpthread.h 1379851..master $ Issue mentioned by @rusty-snake: #4642 (comment)
Meson seems far simpler than cmake. |
I had a recent discussion with a sourceware project maintainer about build systems... it included this rather insightful comment about why autotools is a highly preferable build system:
This isn't really a problem with projects that only support Linux. Of course, neither is it relevant that Meson, unlike autotools, has good support for Windows. Since portability doesn't actually matter in the slightest, maybe the real issue is about build system requirements? autotools famously has none, which is another way of saying that it requires make but assumes you have it already (Linux will always have the other POSIX shell tools needed to run If that is the concern here, you may be interested in https://sr.ht/~lattis/muon/, a c99 reimplementation of Meson with good coverage for the core Meson functionality, which bootstraps with sh and a c99 compiler plus samurai (that itself bootstraps with make) and can compile down to a single statically linked prebuilt binary with an internal copy of samurai (ninja-compatible build tool which Meson uses instead of make) thrown in for good measure... all weighing in at 4.5 mb. |
Firejail targets desktop linux market. You can expect desktop machines to have at least 4GB RAM and 128GB storage space. If you can't run firefox on your machine, you are not a target market. If your computing environment is limited, then you don't need to worry about sandboxing. |
In my experience the concern usually tends to be less about "unable" and more "don't want to". It's not all that unreasonable of an opinion. Most users will get it from a distro package, and distros almost always build in stripped down environments. This is why options are nice. Not everyone has to care about this, but if you do... then python isn't your only option to build stuff with Meson. |
Python is a build dependency. Binary distro users don't need to install python.
"Stripped down" in disto build environment means self-imposed sandboxes. Not artificial resource constraints like restrictions on RAM size. Build machines tend to have a lot of RAM because they need to build chromium and firefox every few weeks. You don't need to worry about installing python if you are not using source-based distros like gentoo linux. If you are on gentoo, you should have more than 32GB RAM and 256GB storage space anyway. My build machine has enough power to browse the internet and watch youtube videos while building chromium browser. Firefox build routinely consumes 16GB RAM while I'm browsing the internet and watching videos. Deficient machines aren't fit to be build machines. Use a binary distro if your computer is weak. |
Rebased and updated from netblue30#4656 by rusty-snake. Closes: netblue30#4642
Rebased and updated from netblue30#4656 by rusty-snake. Closes: netblue30#4642
Rebased and updated from netblue30#4656 by rusty-snake. Closes: netblue30#4642
This came up in #4633 (comment). I like the idea. Meson is faster and has an simpler and less error-prone syntax. Is this something we want to do?
CMake would be a second alternative.
The text was updated successfully, but these errors were encountered: