<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br><br>
> I think the key difference here is that Autotools allows arbitrarily generated code to be executed at any time. More modern build systems require the use of specific commands/files to run arbitrary code, e.g. CMake (IIRC [`execute_process()`][2] and [`ExternalProject`][3]), Meson ([`run_command()`][1]), Cargo ([`<a href="http://build.rs" rel="noreferrer" target="_blank">build.rs</a>`][4]).\<br>
<br>
To me it seems that Cargo is the absolute worst case with respect to<br>
supply chain attacks.<br>
<br>
It pulls in dependencies recursively from a relatively uncurated<br>
list of projects, puts the source of all those dependencies into a <br>
hidden directory in home, and runs Build.rs automatically with<br>
user permissions.<br>
</blockquote><div><br></div><div>100% this. Wait until you learn how proc macros work.</div><div><br></div><div> <br></div><div><br></div></div></div>