Skip to content

Loading…

Feature Request: Convert steamdeps.txt to a distro-agnostic format #1200

Open
Tele42 opened this Issue · 13 comments

10 participants

@Tele42

If Steam is to use steamdeps.txt and /usr/bin/steamdeps as the future solution to package manager integration, then the ubuntu-specific package list needs to be replaced by a distro-agnostic format. The adaptor script should be able to do a lookup and translate the list into individual packages, instead of being spoon fed the package names.
The simplest naming scheme would probably be libprimarylibraryname.so.1:32.
If an automated lookup method is not available, it will take the same amount of time to make a translation table from the distro-agnostic set to the distro-specific package list as it would from the ubuntu-specific set, and it is unreasonable to expect game makers to repeatedly revise their dependency list as distributions are officially supported.

To put it another way, a single unified set of dependencies for a package takes less man hours to maintain compared to a dozen distro-specific sets in the same file.

@triage-valve triage-valve was assigned
@titegtnodI

I think this is a good idea. I think it should have always been this way o.o.

@PeaEyeEnnKay

I'm using OpenSuse 12.2 x64 and I am aware it is unsupported. Due to the hope that Valve will try to be sympathetic to non supported distributions I wish to add my support to this feature request.

I updated my base steam package to 1.0.0.22-2, as my original install was complaining about being out of date. After updating I now get asked to enter my root password and then it tries to call out to a package management system that doesn't exist. This is also, as far as I can tell, for packages that are all already installed; under the names OpenSuse gives those packages.

As a half way house just being able to override this dependency behaviour and give it a different package manager command line to use and a different dependencies file would be handy. This puts it in the user's court to make sure their unsupported distribution has all the required dependencies and could be done with an environment variable or two to override the default behaviour.

@PeaEyeEnnKay

I have just found out that the OpenSuse package has returned on OBS and have installed that. This means I am now running 1.0.0.22-1.1, which does not exhibit either behaviour currently.

@pashazz

This bug breaks the entire steamdeps script from porting to another distros

@devurandom

If you do it this way, you can simply get rid of the file altogether. Just do a "scanelf -n $f" on the binary files (libraries and binaries) of steam (or the game you want to install), and you get a list of libraries that are needed (the ELF DT_NEEDED section). You can then drop all libraries that are bundled with the game. The remaining items will be what you have to ask the package manager for. Some package managers already support such lookup (yum for RedHat), while for other distros you need to jump some hoops (e.g. use PFL on Gentoo).

Since the distros should be concerned about adding support for their distro and not the other way around (you do not want to maintain support for a dozen or more distros yourself), I propose calling a hook instead. That would be a script that takes library names on standard input (e.g.), translates them to package names and then installs them. You could, by default ship one that works on Ubuntu, since you seem to have some kind of cooperatation, but other distros could simply replace it with their own version (beware that you do not try to checksum and "fix" the file!).

@Tele42

I agree, a proper infrastructure is preferable to this stop-gap measure.

@Mailaender

As I said in #1167 the current measure for https://build.opensuse.org/package/show?project=games&package=steam was simply to remove /usr/bin/steamdeps script because it was pretty useless for the RPM world. I don't know which games on Steam actually rely on it. I only have Source engine games installed. Sorry for the "works for me" approach. Patches are welcome although even the official solution Valve prepared for Ubuntu looks extremely hacky.

@johndrinkwater
Valve Software member

@Tele42 ‘a proper infrastructure is preferable’ ‐ probably time to get Debian, Fedora, Ubuntu et al to sit down and work it out then… ;)

@Tele42

@johndrinkwater Getting major distros to cooperate is well beyond the scope of anything Valve is doing with steam. All that I am looking for is a solution that will allow individual distro maintainers to take care of themselves when it comes to dependency resolution.

@Mailaender

http://www.packagekit.org/pk-users.html seems to be already in wide-spread use.

@hasufell

less magic, more documentation

@Mailaender

@johndrinkwater The easiest solution is to simply require the .so names of the libraries with version number. RPM does support translating this into the package it has to fetch, but I guess every other package manager knows about that, too for automatic dependency generation when building from source.

@cognitus

what's state? I had update the client with the last beta and I had edit the script for open steam...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.