Bug 17199 - Steam dependencies
Summary: Steam dependencies
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 5
Hardware: x86_64 Linux
Priority: Normal major
Target Milestone: Mageia 5
Assignee: QA Team
QA Contact: Rémi Verschelde
URL:
Whiteboard: has_procedure mga5-64-ok advisory
Keywords: validated_update
Depends on:
Blocks:
 
Reported: 2015-11-21 23:48 CET by Luke Jones
Modified: 2015-12-05 11:05 CET (History)
6 users (show)

See Also:
Source RPM: steam-1.0.0.50-2.mga6.noarch.rpm
CVE:
Status comment:


Attachments
New SPEC file for Steam (3.51 KB, text/x-rpm-spec)
2015-11-23 08:49 CET, Luke Jones
Details
Updated steam.spec (3.65 KB, text/plain)
2015-11-23 21:19 CET, Luke Jones
Details
Updated steam.spec (3.69 KB, text/x-rpm-spec)
2015-11-24 02:51 CET, Luke Jones
Details
Final Steam package patch (1.09 KB, patch)
2015-11-30 21:48 CET, Luke Jones
Details | Diff

Description Luke Jones 2015-11-21 23:48:14 CET
Fresh install, update straight to Cauldron;

For many Steam games which are made with the Unity3d engine, there is a consistent crash. The game will crash with the following message when run from a console:

[ljones@DOOM-repo Canabalt]$ ./Canabalt.x86_64 
Set current directory to /home/ljones/.local/share/Steam/steamapps/common/Canabalt
Found path: /home/ljones/.local/share/Steam/steamapps/common/Canabalt/Canabalt.x86_64
Mono path[0] = '/home/ljones/.local/share/Steam/steamapps/common/Canabalt/Canabalt_Data/Managed'
Mono path[1] = '/home/ljones/.local/share/Steam/steamapps/common/Canabalt/Canabalt_Data/Mono'
Mono config path = '/home/ljones/.local/share/Steam/steamapps/common/Canabalt/Canabalt_Data/Mono/etc'
Aborted

And running; cat ~/.config/unity3d/Finji/Canabalt/Player.log produces;

Preloaded type GtkListStore
Preloaded type GtkWindow
Preloaded type GtkVBox
Preloaded type GtkImage
Preloaded type GtkNotebook
Preloaded type GtkHBox
Preloaded type GtkFrame
Preloaded type GtkAlignment
Preloaded type GtkTreeView
Preloaded type GtkLabel
Preloaded type GtkCheckButton
Preloaded type GtkScrolledWindow
Stacktrace:


Native stacktrace:

	/home/ljones/.local/share/Steam/steamapps/common/Canabalt/Canabalt_Data/Mono/x86_64/libmono.so(+0x926cb) [0x7f42a320c6cb]
	/home/ljones/.local/share/Steam/steamapps/common/Canabalt/Canabalt_Data/Mono/x86_64/libmono.so(+0x36226) [0x7f42a31b0226]
	/lib64/libpthread.so.0(+0x10ba0) [0x7f42a7624ba0]
	/lib64/libc.so.6(fread+0x3c) [0x7f42a615407c]
	./Canabalt.x86_64(png_default_read_data+0x22) [0xcd5b52]
	/lib64/libpng16.so.16(png_read_sig+0x4e) [0x7f429a9dcc4e]
	/lib64/libpng16.so.16(png_read_info+0x27) [0x7f429a9c5a07]
	/usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so(+0x379e) [0x7f4296baa79e]
	/lib64/libgdk_pixbuf-2.0.so.0(gdk_pixbuf_new_from_file+0xba) [0x7f42a1d3b52a]
	/lib64/libgtk-x11-2.0.so.0(+0x249ad1) [0x7f42a219bad1]
	/lib64/libgtk-x11-2.0.so.0(gtk_window_set_icon_from_file+0x14) [0x7f42a21a1934]
	/home/ljones/.local/share/Steam/steamapps/common/Canabalt/Canabalt_Data/Plugins/x86_64/ScreenSelector.so(LoadScreenSelectorWindow+0x377) [0x7f42a25aeeb7]
	./Canabalt.x86_64() [0xc67667]
	./Canabalt.x86_64() [0x46404b]
	/lib64/libc.so.6(__libc_start_main+0xf0) [0x7f42a610b5b0]
	./Canabalt.x86_64() [0x466299]

Debug info from gdb:


=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================


Other games also seem to have issue with libc.

[ljones@DOOM-repo Black Ice]$ cat ~/.config/unity3d/SIGTRAP\ Games/Sublevel\ Zero/Player.log 
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct null not valid
Stacktrace:


Native stacktrace:

	/home/ljones/.local/share/Steam/steamapps/common/Sublevel Zero/SublevelZero_Data/Mono/x86/libmono.so(+0x8960f) [0xf492b60f]
	linux-gate.so.1(__kernel_rt_sigreturn+0) [0xf7752b80]
	linux-gate.so.1(__kernel_vsyscall+0x10) [0xf7752ba0]
	/lib/libc.so.6(gsignal+0x46) [0xf712def6]
	/lib/libc.so.6(abort+0x157) [0xf712f767]
	/lib/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x155) [0xf73a7b85]
	/lib/libstdc++.so.6(+0x708a3) [0xf73a58a3]
	/lib/libstdc++.so.6(+0x7091d) [0xf73a591d]
	/lib/libstdc++.so.6(+0x70be1) [0xf73a5be1]
	/lib/libstdc++.so.6(_ZSt19__throw_logic_errorPKc+0x44) [0xf73ceb24]
	./SublevelZero.x86() [0x8a568d4]
	./SublevelZero.x86() [0x8a56dc9]
	./SublevelZero.x86() [0x8a519c6]
	./SublevelZero.x86() [0x8a0c763]
	./SublevelZero.x86() [0x8a09d86]
	./SublevelZero.x86() [0x822c44b]
	./SublevelZero.x86() [0x8391c2c]
	./SublevelZero.x86() [0x8363532]
	./SublevelZero.x86() [0x8087a73]
	/lib/libc.so.6(__libc_start_main+0xf7) [0xf711a507]
	./SublevelZero.x86() [0x8091345]

Debug info from gdb:


=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================


This is reproducible every time, and I am having trouble tracking down the exact cause of it.


Reproducible: 

Steps to Reproduce:
Comment 1 Luke Jones 2015-11-21 23:54:04 CET
Appears to be a result of running games with primusrun/optirun on an Nvidia Optimus based laptop.

Will follow up with more details. Could perhaps be related to GL libraries not being loaded correctly.

CC: (none) => luke.nukem.jones

Rémi Verschelde 2015-11-22 03:20:14 CET

CC: (none) => rverschelde

Comment 2 Luke Jones 2015-11-22 05:16:45 CET
Additional output using GDB;

(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/ljones/.local/share/Steam/steamapps/common/Sublevel Zero/SublevelZero.x86 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Found path: /home/ljones/.local/share/Steam/steamapps/common/Sublevel Zero/SublevelZero.x86
Mono path[0] = '/home/ljones/.local/share/Steam/steamapps/common/Sublevel Zero/SublevelZero_Data/Managed'
Mono path[1] = '/home/ljones/.local/share/Steam/steamapps/common/Sublevel Zero/SublevelZero_Data/Mono'
Mono config path = '/home/ljones/.local/share/Steam/steamapps/common/Sublevel Zero/SublevelZero_Data/Mono/etc'
[New Thread 0xf4b07b40 (LWP 8059)]
[New Thread 0xf4ad6b40 (LWP 8060)]
[New Thread 0xf47ffb40 (LWP 8061)]
displaymanager : xrandr version warning. 1.5
client has 4 screens
displaymanager screen (0)(eDP1): 1920 x 1080
Using libudev for joystick management


Importing game controller configs

Program received signal SIGABRT, Aborted.
0xf7fdaba0 in __kernel_vsyscall ()
(gdb) bt
#0  0xf7fdaba0 in __kernel_vsyscall ()
#1  0xf79b5ef6 in __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#2  0xf79b7767 in __GI_abort () at abort.c:89
#3  0xf7c2fb85 in __gnu_cxx::__verbose_terminate_handler ()
    at ../../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#4  0xf7c2d8a3 in __cxxabiv1::__terminate (
    handler=0xf7c2fa30 <__gnu_cxx::__verbose_terminate_handler()>)
    at ../../../../../libstdc++-v3/libsupc++/eh_terminate.cc:47
#5  0xf7c2d91d in std::terminate () at ../../../../../libstdc++-v3/libsupc++/eh_terminate.cc:57
#6  0xf7c2dbe1 in __cxxabiv1::__cxa_throw (obj=0x9a45530, 
    tinfo=0xf7d26404 <typeinfo for std::logic_error>, 
    dest=0xf7c42500 <std::logic_error::~logic_error()>)
    at ../../../../../libstdc++-v3/libsupc++/eh_throw.cc:87
#7  0xf7c56b24 in std::__throw_logic_error (__s=0x92ec038 "basic_string::_S_construct null not valid")
    at ../../../../../../libstdc++-v3/src/c++11/functexcept.cc:74
#8  0x08a568d4 in ?? ()
#9  0x08a56dc9 in ?? ()
#10 0x08a519c6 in ?? ()
#11 0x08a0c763 in ?? ()
#12 0x08a09d86 in ?? ()
#13 0x0822c44b in ?? ()
#14 0x08391c2c in ?? ()
#15 0x08363532 in ?? ()
#16 0x08087a73 in ?? ()
#17 0xf79a2507 in __libc_start_main (main=0x8086a10, argc=1, argv=0xffffcde4, init=0x92ea5f0, 
    fini=0x92ea660, rtld_fini=0xf7fea280 <_dl_fini>, stack_end=0xffffcddc) at libc-start.c:289
#18 0x08091345 in ?? ()
(gdb)


Kernel config issue?

Source RPM: steam => unkown

Luke Jones 2015-11-22 05:22:14 CET

Source RPM: unkown => unkown, bumblebee related

Comment 3 Luke Jones 2015-11-23 08:49:07 CET
Created attachment 7230 [details]
New SPEC file for Steam

All problems I was having are related to failed dependencies.
The attached SPEC for Steam build includes all necessary dependencies, please update the Steam rpm for release 5 and Cauldron.

Assignee: bugsquad => luke.nukem.jones

Luke Jones 2015-11-23 08:49:35 CET

Summary: Multiple Steam based Unity3d games crash. => Steam dependencies

Luke Jones 2015-11-23 08:50:03 CET

Target Milestone: --- => Mageia 5

Luke Jones 2015-11-23 08:51:14 CET

Source RPM: unkown, bumblebee related => steam-1.0.0.50-2.mga6.noarch.rpm

Rémi Verschelde 2015-11-23 09:21:03 CET

Whiteboard: (none) => MGA5TOO

Comment 4 Rémi Verschelde 2015-11-23 09:23:06 CET
Did you really need to specifically install all those dependencies? Most of them are already included in the Steam runtime as far as I know, against which Steam games are compiled.
Rémi Verschelde 2015-11-23 09:23:16 CET

Assignee: luke.nukem.jones => rverschelde

Comment 5 Luke Jones 2015-11-23 09:28:43 CET
(In reply to Rémi Verschelde from comment #4)
> Did you really need to specifically install all those dependencies? Most of
> them are already included in the Steam runtime as far as I know, against
> which Steam games are compiled.

It appears that is correct. While about half of those deps were already installed on a fresh system, there were quite a large number missing.
As I understand it, Steam only provides *some* of the deps needed, but I will cross-check to be sure; I used an openSUSE SPEC as a guide for the dependencies.
Comment 6 Rémi Verschelde 2015-11-23 09:40:03 CET
I'll try to have a look asap, openSUSE's packaging is often sub-optimal (not very thoroughly reviewed, at least in the Games repo), e.g. here the libalsa2-devel library is completely bogus, it would pull in a ton of 32bit devel libraries on 64bit systems.
Comment 7 Luke Jones 2015-11-23 09:49:17 CET
(In reply to Rémi Verschelde from comment #6)
> I'll try to have a look asap, openSUSE's packaging is often sub-optimal (not
> very thoroughly reviewed, at least in the Games repo), e.g. here the
> libalsa2-devel library is completely bogus, it would pull in a ton of 32bit
> devel libraries on 64bit systems.

Okay thanks for the tip. I'll have a clean-up if possible, and check it on a new install. Strangely enough, the libalsa2-devel wasn't installed/selected at all by using the package created by that SPEC

I see libs like;
libgcrypt20
libnm-util2
libnm-glib4
libcups2
which don't seem to be related, but yeah, I will investigate further.
Comment 8 Rémi Verschelde 2015-11-23 09:56:37 CET
Re-assigning to you as you seem willing to continue poking at it, I'll stay as QA contact :)

Assignee: rverschelde => luke.nukem.jones
QA Contact: (none) => rverschelde

Comment 9 Luke Jones 2015-11-23 10:17:13 CET
Much appreciated. A nice easy one to get started with and use to familiarize myself with the process.  :)
Florian Hubold 2015-11-23 10:59:14 CET

CC: (none) => doktor5000

Comment 10 Luke Jones 2015-11-23 21:19:17 CET
Created attachment 7231 [details]
Updated steam.spec

This is the final updated steam.spec which I am happy with.

All deps have been checked/cross referenced to be sure they are needed. There are two comments in the spec file I need checked and advised about.

Initial tests are great. The install grabs aprox 50MB of extra packages, this is normal across distros.

Attachment 7230 is obsolete: 0 => 1

Rémi Verschelde 2015-11-23 21:25:42 CET

Attachment 7231 mime type: text/x-rpm-spec => text/plain

Comment 11 Luke Jones 2015-11-23 23:38:43 CET
(In reply to Luke Jones from comment #10)
> Created attachment 7231 [details]
> Updated steam.spec
> 
> This is the final updated steam.spec which I am happy with.
> 
> All deps have been checked/cross referenced to be sure they are needed.
> There are two comments in the spec file I need checked and advised about.
> 
> Initial tests are great. The install grabs aprox 50MB of extra packages,
> this is normal across distros.

Also note that I added some version checking to some packages which could *possibly* cause issues if the wrong versions were installed. After browsing the package DB and cross-checking versions it doesn't seem like it would be an issue if there were no version requirements.
However, I think it would be good practise for future proofing.

Lastly, on a clean install, everything is working as it should and I have no issues with the games I previously had trouble with.
Comment 12 Luke Jones 2015-11-24 02:51:51 CET
Created attachment 7232 [details]
Updated steam.spec

Required a conditional in the spec for correct package dependency.

Attachment 7231 is obsolete: 0 => 1

Comment 13 Rémi Verschelde 2015-11-30 21:03:41 CET
Fixed in Cauldron: http://svnweb.mageia.org/packages?view=revision&revision=907385

I'll prepare an update for mga5.

Version: Cauldron => 5
Whiteboard: MGA5TOO => (none)

Comment 14 Rémi Verschelde 2015-11-30 21:10:41 CET
I've pushed it to Mageia 5 nonfree/updates_testing:
steam-1.0.0.51-1.mga5.nonfree.noarch

@Luke, could you provide an update advisory?
See this page with an example and some explanations: https://wiki.mageia.org/en/Update_Advisory_Announcement_Example

See also my advisory for bumblebee as an example: https://bugs.mageia.org/show_bug.cgi?id=16094#c16

Apart from the bug fixed, you should likely also mention the version update to 1.0.0.51 (I've documented it in the changelog as "adds some changes to udev rules").
Comment 15 Luke Jones 2015-11-30 21:47:24 CET
Final patch accepted, assigned to QA.

Advisory:
=========

Additional dependencies for Steam have been added.

   The extra dependencies are required for Steam bootstrap.
   It was also found that at least a couple of games available on
   Steam required libmesaglu1 to operate correctly, this is 
   especially true when running a system that uses Nvidia Optimus
   hardware and proprietary drivers.

SRPMs:
======
steam-1.0.0.51-1.mga5.nonfree.noarch

RPMs:
=====
steam-1.0.0.51-1.mga5.nonfree.noarch

Testing procedure:
==================

- Install Steam on a fresh install of Mageia.

- Test various games
-- Special attention should be paid to Unity3D engine games
    examples: FortressCraft, Sublevel Zero, Black Ice

- If possible, test with libre and proprietary drivers
- If possible, test with Nvidia Optimus hardare using bumblebee

Status: NEW => ASSIGNED
Assignee: luke.nukem.jones => qa-bugs

Comment 16 Luke Jones 2015-11-30 21:48:49 CET
Created attachment 7255 [details]
Final Steam package patch

Attachment 7232 is obsolete: 0 => 1

Comment 17 Rémi Verschelde 2015-11-30 21:58:29 CET
Thanks Luke, just a small correction:

Advisory:
=========

Additional dependencies for Steam have been added.

   The extra dependencies are required for Steam bootstrap.
   It was also found that at least a couple of games available on
   Steam required libmesaglu1 to operate correctly, this is 
   especially true when running a system that uses Nvidia Optimus
   hardware and proprietary drivers.

   The package was also updated to version 1.0.0.51, adding some
   changes to udev rules for support of Steam hardware.

SRPMs:
======
steam-1.0.0.51-1.mga5.nonfree

RPMs:
=====
steam-1.0.0.51-1.mga5.nonfree.noarch
Comment 18 claire robinson 2015-12-01 01:05:36 CET
Added requires from steam in Nonfree Updates..

# urpmq --requires steam --media "Nonfree Updates" 2>/dev/null | sort > 1.txt
# urpmq --requires steam --media "Nonfree Updates Testing" 2>/dev/null | sort > 2.txt

# comm -3 1.txt 2.txt
        gnu-free-mono-fonts
        libcurl4
        libdbus-glib1_2[>= 0.100.2]
        libfreetype6
        libmesaglu1
        libstdc++6[>= 4.8.2]
        xz
Comment 19 claire robinson 2015-12-01 03:12:50 CET
Testing complete mga5 64

Checked rpmdiff for oddities.

# urpmi steam
To satisfy dependencies, the following packages are going to be installed:
  Package                        Version      Release       Arch    
(medium "Nonfree Updates Testing")
  steam                          1.0.0.51     1.mga5.nonfr> noarch  
(medium "Core 32bit Release")
  libdbus-glib1_2                0.102        4.mga5        i586    
  libssh2_1                      1.4.3        6.mga5        i586    
(medium "Core 32bit Updates")
  libcurl4                       7.40.0       3.1.mga5      i586    
  libidn11                       1.32         1.mga5        i586    
1.2MB of additional disk space will be used.
3.1MB of packages will be retrieved.

Confirmed the steamdeps renaming.

# ls /usr/bin/steam*
/usr/bin/steam*  /usr/bin/steamdeps.save*

Downloaded and played a game demo. Did very badly. Stopped.

Whiteboard: (none) => has_procedure mga5-64-ok

Rémi Verschelde 2015-12-02 08:16:57 CET

Whiteboard: has_procedure mga5-64-ok => has_procedure mga5-64-ok advisory

Comment 20 William Kenney 2015-12-03 19:55:44 CET
In VirtualBox, M5, KDE, 32-bit

Package(s) under test:
steam

default install of steam

[root@localhost wilcal]# urpmi steam
Package steam-1.0.0.50-1.1.mga5.nonfree.noarch is already installed

everything seems to install just fine. But when launching from
a terminal the follow error is reported:

assert_20151203104642_1.dmp[6016]: Finished uploading minidump (out-of-process): success = yes
assert_20151203104642_1.dmp[6016]: response: CrashID=bp-48d9b6e2-8cbc-4014-8e53-963ed2151203
assert_20151203104642_1.dmp[6016]: file ''/tmp/dumps/assert_20151203104642_1.dmp'', upload yes: ''CrashID=bp-48d9b6e2-8cbc-4014-8e53-963ed2151203''

Also when launching the following error window is displayed:

OpenGL GLX context is not using direct rendering, which may cause performance problems.
For more information visit https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457.

Would we expect steam to work in a Vbox client?

CC: (none) => wilcal.int

Comment 21 Luke Jones 2015-12-03 20:00:42 CET
William,

In short, no. Typically the GL drivers are either poor, non- existent, or not high enough GL version.
Steam may launch, but a great many games require decent driver support.
Comment 22 William Kenney 2015-12-03 20:06:00 CET
(In reply to Luke Jones from comment #21)

> In short, no....

Rats....Thanks
Dave Hodgins 2015-12-05 04:13:22 CET

Keywords: (none) => validated_update
CC: (none) => davidwhodgins, sysadmin-bugs

Comment 23 Mageia Robot 2015-12-05 11:05:03 CET
An update for this issue has been pushed to Mageia Updates repository.

http://advisories.mageia.org/MGAA-2015-0201.html

Status: ASSIGNED => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.