Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please provide a 64-bit package #179

Closed
gwvr opened this issue Dec 21, 2012 · 150 comments
Closed

Please provide a 64-bit package #179

gwvr opened this issue Dec 21, 2012 · 150 comments

Comments

@gwvr
Copy link

gwvr commented Dec 21, 2012

Please provide a 64-bit Steam package, so that those of us on 64-bit distros don't have to install a gazillion 32-bit packages.

(Ubuntu 12.04 64-bit here.)

@stalkerg
Copy link

And many bugs for build in gentoo 32 bit env. in winedows 64 bit is cut. But in Linux 64 bit is a main platform.

@arrowmaster
Copy link

What you are requesting is that all games have native 64bit versions so that you don't need to install 32bit libraries on a 64bit system. This sounds like something that will not happen.

@Tatsh
Copy link

Tatsh commented Dec 21, 2012

No, @Terminal58. 64-bit is the norm on Linux. It is not 'something new'. Windows is that nonsensical OS that has to keep 'backward-compatibility'.

Also, Steam is not setting any standards across anything. If anything it is breaking standards as it continues to use its own 'look-and-feel'-type GUI, only supports PulseAudio for sound, a non-standard installation process (requesting the user to apt-get more stuff is not normal at all), and it only officially supports one distro.

Wine has 64-bit support now even, better support than actual Windows considering Wine in 32-bit mode on a multi-arch Linux system can still run 16-bit apps. I think many users will stick just with running Steam on Wine.

Gentoo has had 64-bit support since 2006 if not earlier.
Slackware: 2005 at least
Ubuntu: 2006 or earlier

@Majkl578
Copy link

I think this is not a big problem. Multiarch is expanding, Debian Wheezy will support it, Ubuntu already does. There are some packages not multiarch-aware, but that's mainly their maintainer's fault. E.g. on Debian, there's wayland 0.85 not multiarch-aware (see issue) in repos which is blocking multiarch installation gtk3 3.6 (experimental) through mesa, although there is a multiarch-aware version in their git.

@sjuxax
Copy link

sjuxax commented Dec 21, 2012

Distros have stubbornly insisted for years on making multiarch a serious pain in the rear. Arch, thankfully, has had first-class multiarch for probably a couple of years now. While multiarch support is improving, I don't think it's a real answer to the issue.

@Tatsh: You'll get no real benefit running the 32-bit Windows binary in WINE on your x64 Linux box.

I expected WINE's performance to be superior to the native TF2 build at least at first, but so far the native build is much smoother. Don't think there are many people who are going to be better off on WINE.

@Tatsh
Copy link

Tatsh commented Dec 21, 2012

You say that 'distros stubbornly insisted for years on making multiarch a serious pain in the rear'. Multi-arch is a temporary solution to the problem of compatibility with older binaries. Keyword is older (especially ones we do not have the source to, hence cannot fix ourselves). This is new and so there is nearly no excuse to not provide a compatible 64-bit binary here. Even Rarsoft provides a compiled 64-bit binary of RAR: http://www.rarlab.com/download.htm.

Gentoo has provided multi-arch as default 64-bit version for a very long time and still does. Generally it has worked very well but it is not something easy to maintain nor easy to keep 100% compatible with every random binary someone grabs (like Steam, or Amazon's MP3 downloader program a while ago). Having a chroot is also a cumbersome solution hence it is rarely chosen (I have gone this route before with PCSX2).

@sjuxax We are probably not going to see very many big titles as native ports on Linux until some form of D3D is supported in X11 or Wayland (of which there is already some support for D3D11 in Wayland but it is experimental). Developers do not seem to want to learn GL when it comes to PC. And also, many things would have to be 'standardised', such as audio API. But you ought to know that many users on Linux have personal preferences they will not give up even for a game.

Strangely enough, Wine wins here. In Wine, I can choose ALSA no matter what. I am not forced into using PulseAudio as many binary-only apps have often chosen to do (including Steam).

@gwvr
Copy link
Author

gwvr commented Dec 21, 2012

Well I'm glad I've stimulated some debate, if nothing else! In terms of hardware support, the only obvious advantage I can see of Steam being 32-bit is that it will support Atom powered netbooks. I don't think that is going to be a significant market for Steam, and IMHO not a good enough reason for not providing 64-bit package - this is 2012!

Unfortunately Ubuntu still recommends the 32-bit version for download, presumably because it's the safer option for those who don't know which to use. So there is probably a significant installed base of potential Steam users who would need to reinstall Linux to use a 64-bit package. So hopefully Valve will be able to provide support for both 32-bit and 64-bit Steam, just like almost everyone else does for their Linux software!

@biltongza
Copy link

There's no argument in saying you want a 64 bit Steam binary to get rid of 32 bit libraries when you're gonna need them all for the games you get on Steam anyway. The only way for this to happen if we get 64 bit games as well as Steam.

That said, I'll +1 this. 64 bit is the future, and if we get 64 bit games and clients on windows too there's nothing wrong with that.

@gwvr
Copy link
Author

gwvr commented Dec 21, 2012

@biltongza You're right of course. The games and libraries should be available as 64-bit packages too. This doesn't sound like rocket science, so hopefully someone at Valve and the game developers can get their head around it?

@Llammissar
Copy link

+1 and I'll also note that, much like porting in the first place, a 64-bit build can help expose dangerous assumptions and bugs in your code.

@thomhansen
Copy link

@Tatsh from your first post I think you're profoundly confused about what multi-arch means. (Multiarch does not mean 64bit) Your stance that 64bit is the future and everyone must convert is just wrong. As far as the GUI not changing from the Windows version, every piece of software on Linux does not have to follow every philosophy of Linux because even forcing said philosophies is against the philosophy of Linux.

Saying to Valve make a 64bit of Steam because of the short comings of Linux is ignoring the capability of Linux to catch up on Multiarch support

@biltongza
Copy link

@Terminal58 why is it wrong if everyone does convert to 64 bit? We don't need to force it but these days there is pretty much no reason to go with a 32 bit system.

Back on topic, if valve only provided a 64 bit binary obviously that would be silly. There has to be a 32 bit version as well.

@yamokosk
Copy link

+1 to a 64-bit steam client

@ghost
Copy link

ghost commented Dec 23, 2012

+1
Being on Chakra, where we pretty much dropped 32 bit for good, i'd have to install 34+ (out-of-date) lib-32 packages, things like dbus, alsa, libx11, crypt, probably catalyst too.
Even if I could be bothered to do this just for beta-testing one single application, I'd have to solve some "unsolvable conflicts" first.

At this point a clear deal-breaker.

@arrowmaster
Copy link

As I said before, even if Valve provides Steam as a 64bit application. You are still going to need 32bit libraries unless every game developer releases native 64bit versions of their games. Currently some game are 32bit only, some have 32bit and 64bit versions, and some are neither (SpaceChem uses Mono, although its broken on 64bit systems for now).

Right now the biggest benefit from Valve providing a 64bit version of Steam is going to be the In-game overlay working on 64bit games which it currently does not.

@jidlaph
Copy link

jidlaph commented Dec 24, 2012

They said on the old blog that the only-32-bits problem is only temporary.

@andyceo
Copy link

andyceo commented Dec 25, 2012

+1 for 64-bit package.

@thomhansen
Copy link

@andyceo according to the blog post @jidlaph posted there's going to be a 64bit eventually. Close this issue?

@Llammissar
Copy link

@Terminal58 Usually bugs get closed when they're fixed and not before; otherwise they're misleading for people searching for the same issue. Closing it will just cause it to be reported again.

@gwvr
Copy link
Author

gwvr commented Dec 26, 2012

@jidlaph @Terminal58 They said on the blog: "We are using a 32-bit version of Linux temporarily and will run on 64-bit Linux later." This is ambiguous. Just because they are planning to run Steam on a 64-bit Linux distribution does not mean that they are planning a 64-bit Steam package, or 64-bit game software. They may just intend to test that the 32-bit Steam package works correctly on a 64-bit distribution.

@jidlaph
Copy link

jidlaph commented Dec 26, 2012

@Terminal58: Like @Wyatts said, it's not Closed because it isn't fixed. A bug should only be closed under one of two conditions: either because it is Fixed, or because it's something they Won't Fix. Just because a feature request happens to be a long-term goal of theirs doesn't mean it should be Closed.

@gwvr I guess you're right, though it'd suck if that were the case. If I can run 32-bit Steam on 64-bit Debian, surely running it on 64-bit Ubuntu is far too low a bar to be worth mentioning.

@ghost
Copy link

ghost commented Dec 28, 2012

One thing to consider is the fact that Ubuntu still recommends 32-bit by default. Steam is still supporting Ubuntu only at this point. I don't see why they'd add 64-bit now, even though I personally would love to see this happen.

@confluence
Copy link

If a game has a native 64bit version, will I get that version of the game when I run it through the 32bit client, or will I always get the 32bit version?

There are games which I own both on Steam and independently (e.g. a lot of Humble Bundle games) which seem to have 64bit versions, and I'm wondering whether there's any difference between running them through steam and from the standalone 64bit installers.

@jidlaph
Copy link

jidlaph commented Dec 28, 2012

@confluence: Most 3rd-party software I've seen doesn't really play nice with the filesystem. It's pretty much a coin toss as to where stuff ends up (witness Steam itself with its own bizarre half-repo half-$HOME thing). Keeping all those games in SteamApps is tidier.

@confluence
Copy link

Yes, it certainly is tidier -- although I see more and more games helpfully packaged as debs. Unfortunately I've discovered that the vast majority of the Humble Bundle games I've just redeemed on Steam don't have Linux versions on Steam, so I'll have to keep installing them separately.

I was wondering specifically whether the 32bit client will run 64bit game versions if they exist. It does look like Steam detects your architecture and runs the appropriate game version. It seems to download both versions, though, which is kind of annoying on a slow internet connection.

@Freso
Copy link

Freso commented Dec 29, 2012

@confluence It depends on the game in question. Dungeon of Dredmor (which is the only Linux-native game I've installed through Steam so far) installs both 32-bit and 64-bit executables, but only runs the 32-bit when launched through Steam (see my comment on #430).

I've discovered that the vast majority of the Humble Bundle games I've just redeemed on Steam don't have Linux versions on Steam

I've begun e-mailing the game companies asking to put their Linux packages up on Steam in addition to their Windows (and sometimes Mac OS X) packages. I don't know if there's any specific that needs to be done on the Steam side (since it's still a beta), but I figure that the more games get on board, the more tailwind the Linux client gets - and the more the Linux client will get tested as well.

@Ruedii
Copy link

Ruedii commented Jan 2, 2013

We don't even technically need 64bit native binaries. We just need the dependencies in the package to provide 32bit userland support for Steam.

It's a simple package modification. It shouldn't be too hard for Valve to do. There are even scripts that can do it for you.

@johnv-valve
Copy link
Contributor

@Ruedii - as far as I can tell it is not possible to have a 64-bit .deb which has 32-bit dependencies. At least it didn't work when I tried it. And I don't see how this solves the original issue anyway (which is that people don't want to install "a gazillion 32-bit packages" on their 64-bit systems)

@ghost ghost self-assigned this Jan 10, 2013
@cjwijtmans
Copy link

cjwijtmans commented Oct 18, 2016

There are no 32bit issues.

Plans are for distros to drop 32-bit CPU support, meaning you would not be able to install the OS as a 32 bit system.

Wrong. Support means support not a ban. And if by chance a distro decides to drop "support", nothing is stopping you from running an older version of that distro if you want to be stubborn.

This does not mean multi-lib (.i.e. i386) packages are being done away with.

Whomever said that? This is about the steam binary to be 64 bit. This has nothing to do with distro multilib or steams ability to run 32bit binaries with 32bit steamruntime support.

@dankegel
Copy link

dankegel commented Nov 3, 2016

My son often runs into problems because Steam games are only 32 bits on Linux, so they run out of address space very quickly. He has to turn detail level down low to play, and even that doesn't always suffice.

Unless Steam makes a real effort to get to 64 bits - one game at a time is fine, but you have to start now! - it will simply become irrelevant, like flash games are today.

@ghost
Copy link

ghost commented Nov 3, 2016

Most steam Linux games I play have a 64 bit binary and a 32 bit one, but yeah steam should say that from here on only games that have at least a 64 bit binary are allowed.

@dankegel
Copy link

dankegel commented Nov 3, 2016

Yeah, disallowing 32 bit uploads starting sometime in 2017 would be a good step.

@dankegel
Copy link

dankegel commented Nov 20, 2016

Still present. I just installed a fresh copy of TF2 in Linux ... and it was 32 bits :-(

~/.local/share/Steam/steamapps/common/Team Fortress 2$ file hl2_linux
hl2_linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 3.2.32, BuildID[sha1]=817971d228a59319b6e0296084d041a814675cc4, not stripped

My son is going to keep bugging me until this is fixed.

@JoshuaMurphynz
Copy link

Why wouldn't it be? They have announced otherwise

On 20 Nov 2016 5:33 p.m., "Dan Kegel" [email protected] wrote:

Still present. I just installed a fresh copy of TF2 in Linux ... and it
was 32 bits :-(

~/.local/share/Steam/steamapps/common/Team Fortress 2$ file hl2_linux
hl2_linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 3.2.32,
BuildID[sha1]=817971d228a59319b6e0296084d041a814675cc4, not stripped


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#179 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC0jc-Y5nvE1ZXRkklybJPsp2uJnLwMGks5q_82tgaJpZM4AU5Ey
.

@Ruedii
Copy link

Ruedii commented Nov 21, 2016

To put it simply I WOULD make it require multilib capable kernels but not require any multilib libraries beyond the video drivers, libc6 and libstdc++

Personally, I think the Steam runtime needs a complete update. Currently only a few libraries have been updated, to provide compatibility with Vulkan.

From what I can tell there are no compatibility issues for programs/games with upgrading the library versions, and it would fix compatibility issues with most current distros. The biggest library in question is libstdc++, which should be safe to just use the system library on.

They should probably use the standard Debian packages instead of Ubuntu ones, simply because they have broader compatability. Finally it should either run it's own Pulse Daemon (to allow better compatibility and low-latency optimization) or it should auto-detect if pulse is present and configure to use ALSA instead if Pulse isn't there. It's a tough call whether a custom Pulse installation would be faster, because barring some authority mingling that some users wouldn't like, it will not have Real Time or High-Priority. However, it also won't be optimized for the desktop and can be configured to allow the changing of settings per-game to improve tuning sound quality and performance.

A long term option for pulse would be to contribute a per-application tuning module upstream to Pulse and hope it gets implemented. I suspect Valve could leverage their relationships with Ubuntu and Debian to get this through.

@sylware
Copy link

sylware commented Nov 21, 2016

On Mon, Nov 21, 2016 at 01:12:53AM -0800, Ruedii wrote:

To put it simply I WOULD make it require multilib capable kernels but not
require any multilib libraries beyond the video drivers, libc6 and libstdc++

Wrong. c++ runtime should be statically linked at the application level. c++
ABI is a pile of s**t (I'm assuming 100% of my words on this matter). Not to
mention that a proper and modern c++ compiler frontend/runtime are bare
insanities to get to work reasonnably.

Also, application binaries should be linked statically to their libgcc related
code.

The real steam platform ABI would be ELF libs with minimal sets of explicit
simple symbols.

Personally, I think the Steam runtime needs a complete update. Currently
only a few libraries have been updated, to provide compatibility with Vulkan.

Hope we get C only vulkan support libs. Because that c++ dep is really
annoying (like glsl being dependent on llvm in mesa).

A long term option for pulse would be to contribute a per-application tuning
module upstream to Pulse and hope it gets implemented. I suspect Valve could
leverage their relationships with Ubuntu and Debian to get this through.

Pulse is really bad (big kludge). Luckily we have an alsa plugin, but as far as
I know, pulse can manage hotplugging transparently for applications and software
mixing from stereo to 7.1. With alsalib, it seems the hotplug code has to be
in the application code as well as the resampling/mixing code.

@tukkek
Copy link

tukkek commented Dec 6, 2016

Just found out Steam has a hardware survey page with highly relevant information for this issue. To produce the same information I've pasted below just click "Linux version" on the table by the bottom. http://store.steampowered.com/hwsurvey/?platform=linux

Here is a breakdown of the architecture information provided as of today:

30.15%  Ubuntu 16.04.1 LTS 64 bit
10.69%  Linux 64 bit
9.17%   Linux Mint 18 Sarah 64 bit
6.59%   Ubuntu 16.10 64 bit
5.33%   Ubuntu 14.04.5 LTS 64 bit
38.07%  Other

As you can see we can safely say over 60% of Steam users have 64-bit machines, given Valve's own internal data. This might lead to some people thinking "well 40% is still a bit 32-bit userbase" but I, myself really doubt 32-systems would be even 10% of the total, among those non-specified "other" systems. I wish they wold divulge the entirety of that data or at least more entries before grouping it.

@ananace
Copy link

ananace commented Dec 6, 2016

Another fun statistic, from Gaming on Linux;

Graph

The amount of people using a 32-bit Linux distribution today is not large.

@dankegel
Copy link

dankegel commented Dec 6, 2016

Dropping support for 32 bit machines is not the problem. They'd do that in an instant (or if they wouldn't, they're very confused).

It's the games that haven't bothered to do a 64 bit port. Dropping 32 bit support means dropping those games.

They should announce that as of 1 Jun 2017, no new games may be published on Steam with 32 bit versions on any platform, and work with game developers beforehand to make sure they're on board.

Older games, well, they can continue to be supported, there's not much money in retroporting them.

@ananace
Copy link

ananace commented Dec 6, 2016

There have been (confirmed) rumors about Valve looking at the Flatpak technology stack.

Flatpak provides i386 platforms that can run such applications even on completely 64-bit systems.

One can always hope.

@dankegel
Copy link

dankegel commented Dec 6, 2016

flatpak and snappy are good stuff, they'll make installing much easier.

Won't solve the problem of 32 bit games running out of address space, though.

@heyakyra
Copy link

heyakyra commented Dec 9, 2016

https://steamcommunity.com/app/221410/discussions/0/882964118004393104/

@Ruedii
Copy link

Ruedii commented Dec 12, 2016 via email

@sylware
Copy link

sylware commented Dec 14, 2016 via email

@mmstick
Copy link

mmstick commented Dec 15, 2016

Porting 32-bit Linux games to 64-bit should't be difficult at all on Linux. It's largely just using a 64-bit environment to build your binary instead of a 32-bit environment. Not only do you gain additional memory benefits, but a larger variety of available CPU instructions and CPU registers for the compiler to play with. Can't see any reason why anyone would release a Linux game without a 64-bit option. It's not like we're Windows where there's a lot more involved.

@RussianNeuroMancer
Copy link

@dankegel
Copy link

the wheels are slowly falling off :-)

@sylware
Copy link

sylware commented Dec 17, 2016 via email

@Pauan
Copy link

Pauan commented Dec 17, 2016

To clarify, Steam uses Chromium for its Steam Browser, and in March 2016 Google dropped support for 32-bit Chromium on Linux.

This is probably because essentially all Linux distros and users are using 64-bit now, with 32-bit steadily becoming more obsolete every day.

@posophe
Copy link

posophe commented Dec 17, 2016 via email

@dankegel
Copy link

The sooner we just say no to 32 bits, the better :-)

cef is just chromium with a few patches and small additions needed to make it useful as a library.

It's open enough that you can actually (given skill) go in and fix bugs, and people do. So it's a lot better than closed source in that respect.

(full disclosure: I use cef, and used to work on chrome)

@sylware
Copy link

sylware commented Dec 17, 2016 via email

@dankegel
Copy link

If cef were "no better than closed source", there wouldn't be any pull requests at
https://bitbucket.org/chromiumembedded/cef

Just because you or I can't handle it, doesn't mean nobody can. And cef is pretty darn useful. I am really, really happy that there are smart folks out there contributing bugfixes to it.

@sylware
Copy link

sylware commented Dec 17, 2016 via email

@dankegel
Copy link

off-topic.

@Plagman
Copy link
Member

Plagman commented Dec 17, 2016

We will not drop support for the many games that have shipped on Steam with only 32-bit builds, so Steam will continue to deploy a 32-bit execution environment. To that end, it will continue to need some basic 32-bit support from the host distribution (a 32-bit glibc, ELF loader, and OpenGL driver library).

Whether the Steam client graphical interface component itself gets ported to 64-bit is a different question altogether, and is largely irrelevant as the need for the 32-bit execution environment would still be there because of the many 32-bit games to support.

@Plagman Plagman closed this as completed Dec 17, 2016
@ValveSoftware ValveSoftware locked and limited conversation to collaborators Dec 27, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests