Packaging Rust for Fedora
Packaging Rust for Fedora
Posted Nov 9, 2022 21:13 UTC (Wed) by ras (subscriber, #33059)In reply to: Packaging Rust for Fedora by Cyberax
Parent article: Packaging Rust for Fedora
Here is an idea. Why don't we just split the common parts of every program binary into independent libraries. Pre-do the delta in other words. It wouldn't just save on distribution bandwidth, it would save on storage space too, and hell we could even share the RAM when it is executed. It would probably be more efficient bandwidth wise than doing the delta later, because while we have to update all of libc6 - we only have to do it once, not 26,000 times.
It would probably give us huge saving on time and effort too. Imagine - lets say the library foo has a CVE. Instead of finding every program that uses library "foo" and backporting the CVE fix to each and every copy of the "foo" source those programs included (which would probably be a different version because programmers seem to just love their .lock files, pinning the version), we would have one instance of "foo" (because it is a now a shared library) and fix just that. To take the libc6 example, instead of fixing 26,000 instances of libc6 source we just fix it once! It would take a bit of upfront effort to ensure every program worked with this one version of "foo", but I bet that effort would be more than repaid by the time saved maintaining it later.
In fact the productivity gain would be so big, it would make things like Linux distributions possible. Without it I doubt they would be workable.
Posted Nov 9, 2022 21:20 UTC (Wed)
by Cyberax (✭ supporter ✭, #52523)
[Link]
It unfortunately doesn't scale. People have to make sure that multiple applications actually do work with the single version of the library. We tried that, and it failed. Never mind that this approach still doesn't cover everything. E.g. templates in C++, macros and header changes in C, etc.
Thus simply treating updates as blobs, and computing diffs automatically will help to free humans to do actually useful work.
Packaging Rust for Fedora