This is what you do for Flatpack, Steam, or Docker. All these are popular options.
> Oh and I almost forgot.. install scripts that detect distros, install dependencies.
Most distros offer tooling to make packages for their package managers. With them you declare the dependencies you want and the package manager does the rest.
> And god help you if you need to ship a kernel module.
The right way to do it is to open source it and let the installer compile the software against the kernel headers. Sysdig and VirtualBox do that.
But isn't this exactly what shipping on Windows looks like? I've just checked my Windows partition and there are 43 instances of sqlite dll and 16 instances of Qt5Core.dll because every program that uses those libs needs to include them in their "giant bundle of everything".
> A given branch of the Freedesktop runtime has a 2 year support period after which they are declared EOL.