Binary Dependencies: Identifying the Hidden Packages We All Depend On
Posted by PaulHoule 4 days ago
Comments
Comment by pabs3 2 days ago
https://bootstrappable.org/ https://lwn.net/Articles/983340/ https://github.com/fosslinux/live-bootstrap https://stagex.tools/
Comment by II2II 2 days ago
It looks like most of the time was spent discussing Python. I suspect that is because it is possible to create software without an explicit build stage, so you would not receive warnings about a dependency until the code is called. If the software treats it as an optional dependency, you may not receive any warnings. This sort of situation is by no means unique to interpreted languages. You can write a program in C, then load a library at run time. (I've never tried this sort of thing, so I don't know how the compiler handles unknown identifiers/symbols.) Heck, even the Linux kernel is expected to run "hidden packages" (i.e. the kernel has no means of tracking the origin of software you ask for it to run).
Yes, you can write software to detect when an inspected application loads external binaries. No, it is not trivial (especially if the software developer was trying to hide a dependency).
And just a quibble: even bootstrapping requires the use of a binary (unless you go to unbelievably extraordinary measures).
Comment by pjmlp 1 day ago
Except mankind uses other platforms as well, and even having the source code available isn't enough if no one is looking into it for vulnerabilities.
Comment by yjftsjthsd-h 2 days ago
I know it comes up every time... but nix does kinda exist to solve this problem. At least in pure mode.
Comment by pjmlp 1 day ago
Comment by okanat 1 day ago
Comment by rekado 1 day ago
Comment by okanat 1 day ago
If what you want is to deploy a server or development environment, you already get it with Pixi. If you want a Windows installer with DLLs, you don't get. However it was never the reason.
Comment by pjmlp 1 day ago
All these s suggestions always fall off, because they are special cases for given programming languages, or operating systems.
Comment by okanat 1 day ago
I am an embedded developer and we don't use Python for the main project. It is just scripting. It doesn't get rid of everything but it does make developer environment setup so easy.
Comment by woodruffw 2 days ago
It's a non-trivial issue, in terms of balancing conflicting interests: Python (like most interpreted languages) has a story for integrating native libraries, but that story is not particularly user friendly (in terms of users, Python developers, etc. not having the domain expertise to debug failing native builds). So these ecosystems tend to develop bespoke mechanisms for stashing native binaries inside package distributions, turning a build reliability problem into an introspection problem.
Comment by mplanchard 1 day ago
Comment by pabs3 2 days ago