norden.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Moin! Dies ist die Mastodon-Instanz für Nordlichter, Schnacker und alles dazwischen. Folge dem Leuchtturm.

Administered by:

Server stats:

3.4K
active users

#meson

0 posts0 participants0 posts today
Continued thread

And now the build of the Imake tool itself, not just its config files, can be done using #meson : gitlab.freedesktop.org/xorg/ut
(automake is still an option for now - will probably do one release that offers both build systems before removing the autotools support for the next one.)

GitLabadd meson build system (!13) · Merge requests · xorg / util / imake · GitLabAlso updates the gitlab CI config to test both build types and compare the generated output/installed files.
Continued thread

And then to finish off the week, I merged the changes into the upstream Imake config files repo to remove the autoconf build setup, leaving just the meson build files, since there's been only one bug filed about the meson builds in the two years since they were added.

So yes, if you're still using the ancient Imake build tool, you now need #meson to install the config files it needs (though mainly it's just copying them to the install directory).

gitlab.freedesktop.org/xorg/ut

GitLabremove autoconf build system (!19) · Merge requests · xorg / util / cf · GitLabIt's been two years since the meson build was added, and only one bug in it has been reported and fixed. Signed-off-by: Alan Coopersmith

#Git 2.48 is out[1].

#GitHub has a blog post with a few highlights:

github.blog/open-source/git/hi

* Faster SHA-1s without compromising security

* Bringing --remerge-diff to range-diff

* Memory leak-free tests in Git

* Introducing #Meson into Git

* now-deprecated features are now listed in Documentation/BreakingChanges.txt

* if the remote has a default branch but refs/remotes/origin/HEAD is missing locally, then a fetch will update it.

[1] lore.kernel.org/all/xmqqplku7c

The GitHub Blog · Highlights from Git 2.48The open source Git project just released Git 2.48. Here is GitHub's look at some of the most interesting features and changes introduced since last time.

The git 2.48 release introduces support for building #git with #meson. 🎉

Originally added with this commit:
git.kernel.org/pub/scm/git/git

Note that the existing build system using autoconf and make was not removed. I guess they will monitor the adoption in CI, but I expect they will eventually fully switch.

git.kernel.orgIntroduce support for the Meson build system - git.git - The core git plumbing

Mumbles something about some kernel projects suddenly becoming not reproducible, using broken #makefile based setups, also offering #meson, but that being broken (and leading to differing output!!), too.

I'm quite tired of these types of untested projects, without any CI. Maintainers pointing contributors to their 10 step "easy to follow" mail based workflow isn't helping either I guess 🙄

I have less and less energy packaging stuff like that.

My expectation: #Rust will replace most other low level languages for relatively low level use cases. For example platform libraries, kernels, OS components, like services etc.
But I also think that a lot of these projects (especially platform libraries) care about that they won't just be able to be used by other Rust code.
Also my expectation: For a lot of these projects, #Meson will replace #cargo, because it just supports more features, and makes integration into an existing system easier.

Replied in thread

@mmstick And because cargo does everything it needs to, why do projects have build.rs files then? It very much does what it wants to do: automate the handling of Rust dependencies. But often you need more.
And #meson is designed to be more flexible and support more features. Which is why multi-language projects are very easy to setup, and you aren't locked into one ecosystem.

Are there any useful learning resources out there that are essentially "build systems for dummies"?

I haven't built any complex projects from source manually so far (spoiled by meson + GNOME Builder's Flatpak integration), but I'm finding myself wanting a better understanding of what's actually happening under the hood to turn the stuff in my project folder into something runnable. I don't know much about tweaking meson.build files, for instance.

#GCC14 promoted some warnings to errors. This can break #autoconf, #CMake, #Meson or other build environments autoprobing for features, resulting in code built with missing or altered functionality. This could even lead to security impact, if some security related feature is unexpectedly not enabled.

Passing CC as "gcc -fpermissive" should fix this. If this is not an option there's even the nuclear option of adding a gcc wrapper script that does:

#!/bin/sh
exec /usr/bin/gcc -fpermissive "$@"

So I'm trying to get mod_gnutls build with #Meson. For testing an HTTPS server I need a PKI. With Autotools I have a Makefile with pattern rules to generate private keys, generate certificates from private keys, templates, and CA certificates (also generated by Make, except the root CA is self-signed instead). An then I list all the certificate & key files as check_DATA so they get built before running tests.

How would I go about building those in Meson? I'd rather avoid having to write a
custom_target for each and every one of those files, there are too many. ​:neocat_laugh_sweat:

@mgorny #autotools may be a "bad" build system, but for other reasons (mainly horrible performance). A configure.ac file should always be perfectly readable, and if it isn't, you're already doing it wrong. #meson is bad yet for other reasons, and actually I don't know any really "good" build system.

Fully agree with your second point, but that starts to look like a futile fight nowadays 😞

I suppose everyone and their grandmother is now using the xz/sshd exploit to further their own agenda, so I am going to take this opportunity to further mine as well.

1. #Autotools are a bad build system. If configure scripts are completely unreadable, there should be no surprise that people won't notice obfuscated malicious code in there, provided that everything else is obfuscated by design.

2. Static linking and vendoring is bad. Do you know why the prompt #security response was possible? Because we just had to revert to older liblzma. We didn't have to check, patch and re-release hundreds of projects. It wouldn't be this easy with #RustLang and cargo.

3. You can blame #OpenSource for being underfunded and open to abuse in core system packages. However, no IT project can be resilient to a sufficiently powerful bad actor, and that it happened to xz is just an incident. Corporate projects aren't resilient to it, neither is proprietary, closed-source software.

So, embrace #Meson, embrace dynamic linking, embrace distribution packaging and donate to open source developers.