| Yeah, it really looks like this was built with essentially no view to binary compatibility (i.e. they did it on Precise simply because that's what they had on their desktops) and then tried to bolt-on multilib and cross-version (cross-distro was clearly chucked as far out the window as they could throw it) features right before beta. Then they added a bunch of "checking" stuff to the scripts "just to be sure". Broadly, the best way to do this looks like this: 0. Build on 10.04 Lucid. Of the existing "well-supported" distro choices, it is binary compatible with more of the rest of the universe (including modern Fedora/OpenSUSE too!). 1. Identify dependencies on distro-provided software very early, and document them precisely. Things like the "xboxdrv" hacks mentioned above shouldn't exist; if you can't get it everywhere you need your own copy. It sucks but it's true. Building this stuff from scratch really isn't rocket surgery. A Lucid-built library will (absent missing dependencies) work on more modern distros, I promise. 1a. Conversely, if you can get something from the distro reliably, please do! 2. Separate the "update" mechanism from the binaries! Running steam should simply run steam. Put a "there is a new version" check in there if you must, but don't invoke the package manager on behalf of the user! If there are dependencies missing, you shouldn't be running at all. 3. Maintain your own apt (and ideally yum/zypper) repos. This allows you to cryptographically sign your distributed software in a way that the users and their tools already understand. And frankly it's something you need, and aren't likely do (or do correctly) for yourself anyway. Doing things like this ensures that those of us who aren't on your preferred distro can still run your software without hating you. This is Linux -- you don't need to bend over backwards to support us. We're happy to do some porting work, just don't crap on us like you're doing now. |