Make is incredibly cursed. My favorite example is it having a built-in rule (oversimplified, some extra Makefile code that is pretended to exist in every Makefile) that will extract files from a version control system.
https://www.gnu.org/software/make/manual/html_node/Catalogue...
What you're saying is essentially ”Just Write Bash Scripts”, but with an extra layer of insanity on top. I hate it when I encounter a project like this.
You still get bash scripts in the targets, with $ escape hell and weirdness around multiline scripts, ordering & parallelism control headaches, and no support for background services.
The only sane use for Makefiles is running a few simple commands in independent targets, but do you really need make then?
(The argument that "everyone has it installed" is moot to me. I don't.)
Disk speed? You can use zram on a diskless system. Are you sure you know what it does?
(There's also the thing where it may be faster to read data from ram compressed and decompress it in cpu cache than reading it uncompressed, but that obviously depends on the workload.)
And then you got some minor detail different from the compiled library and boom, UB because some struct is layed out differently or the calling convention is wrong or you compiled with a different -std or …
Which is exactly why you should leave it to the distros to construct a consistent build environment. If your distro regularly gets this wrong then you do have a problem.
Freedom 1 is dubiously fulfilled. I can modify it, sure, but I can't modify it when the program runs on my data for me.
Freedom 0 isn't fulfilled. I don't have the necessary input data to run the program myself.
(Of course the free software definition wasn't written for today's world, and the clarification below goes somewhat against my argument for Freedom 0. Feel free to pick this apart.)
That's a fair point, but I don't think anyone was stating it's free software. It doesn't need to meet the four freedoms to be open source, just the open source definition.
And yeah, you can even buy phones with a non-android linux pre-installed, e.g. from pine64. But they come with all kinds of "for early adopters" warning labels. Deservedly so, in my opinion.
Hope there's a timeline in which banking and corporate apps can run/be enrolled on that. If the current geopolitical mess from the USA isn't a good-enough reason to make it happen, I don't know what is.
I wonder how meson wraps' story fits with this. They used not to, but now they're throwing everything into a single repository [0]. I wonder about the motivation and how it compares to your project.
reply