Skip to content
Snippets Groups Projects
  1. Mar 12, 2020
  2. Mar 06, 2020
  3. Mar 05, 2020
  4. Mar 04, 2020
  5. Feb 27, 2020
  6. Feb 03, 2020
  7. Jan 10, 2020
  8. Jan 09, 2020
  9. Jan 08, 2020
    • Simon McVittie's avatar
      tests: Add an "adverb" command that can be used to debug signal handling · 30e8539a
      Simon McVittie authored
      
      This can be wrapped around a command in the same way as env(1) to see
      what happens: in particular, it can undo some of Steam's execution
      environment.
      
      This is a developer tool rather than something for use in production,
      so it's only installed alongside the installed-tests at the moment.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      30e8539a
    • Simon McVittie's avatar
      Unblock signals when spawning subprocesses, and in s-r-s-i · be4aae8d
      Simon McVittie authored
      
      This avoids a coreutils limitation in versions [8.27, 8.29), which
      unfortunately includes Ubuntu 18.04: timeout(1) relied on SIGCHLD not
      being blocked, but did not unblock it themselves.
      
      The Steam client runs s-r-s-i from a thread that has SIGCHLD blocked,
      and SIGALRM, SIGPIPE and SIGTRAP ignored. This is contrary to frequent
      expectations of general-purpose libraries and command-line utilities:
      in particular, SIGPIPE is used by processes writing to a pipe to detect
      that the read end has died, SIGTRAP is frequently used to terminate
      processes on an assertion failure, and SIGCHLD is often necessary for
      subprocess management.
      
      Games (whether Steam or non-Steam) appear to be run with only SIGPIPE
      and SIGTRAP ignored, so strictly speaking, unignoring those two makes
      the behaviour of s-r-s-i unlike the behaviour of actual games. However,
      the effect of unblocking SIGPIPE and SIGTRAP is to make s-r-s-i more
      likely to crash (the default disposition of both those signals is process
      termination), which is probably what we want: if there is any difference,
      we want s-r-s-i's helpers to be more strict than games (crash more often),
      so that they can act as an early-warning system for issues that could
      manifest in games.
      
      In s-r-s-i, don't unblock signals until after we have finished
      command-line parsing and redirected stdout to print to the original
      stderr. Otherwise, g_debug() would go to the original stdout, resulting
      in it being invalid JSON.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      be4aae8d
  10. Nov 20, 2019
    • Jeremy Whiting's avatar
      Add check-gl draw a triangle test. · fa6dd524
      Jeremy Whiting authored
      Just as with check-vulkan use --visible to see the triangle window
      otherwise application draws a few frames and reports any gl errors
      found or does exit 0 on success.
      fa6dd524
  11. Nov 15, 2019
    • Simon McVittie's avatar
      Build -system-info and -check-locale with relative DT_RPATH · c3a06cce
      Simon McVittie authored
      
      This ensures that they can find the non-ubiquitous json-glib library,
      and the steam-runtime-tools library, even if relocated into a
      non-standard prefix like the LD_LIBRARY_PATH Steam Runtime.
      
      We can't just use a relative version of the standard library directory
      as our RPATH, because if we did that, we would load glibc from the
      same place. This causes crashes in pressure-vessel, where ld.so and
      the rest of glibc are often taken from the host system via
      /overrides/lib, and the glibc in /lib and /usr/lib is incompatible
      with ld.so. Instead, use a private library directory and populate it
      with relative symlinks to our non-glibc dependencies; we assume the
      host version of glibc is new enough that this is OK.
      
      Using DT_RPATH in preference to DT_RUNPATH means we take all our direct
      and indirect dependencies from the same place. This is important when
      libjson-glib (which won't ordinarily have a RUNPATH or RPATH) pulls in
      GIO as an indirect dependency of check-locale, which doesn't directly
      depend on GIO. The GIO library we get must match the versions of GLib
      and GObject we're using.
      
      This also bypasses LD_LIBRARY_PATH.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      c3a06cce
  12. Nov 13, 2019
    • Simon McVittie's avatar
      Revert "Build -system-info and -check-locale with relative DT_RPATH" · a32d9290
      Simon McVittie authored
      
      This made them usable from outside the LD_LIBRARY_PATH runtime, but breaks
      their use inside a pressure-vessel container. In pressure-vessel, the
      glibc family of libraries are typically taken from outside the container
      (for example /overrides/lib/x86_64-linux-gnu/libc.so.6), and the dynamic
      linker ld.so is replaced with one that is suitable for the libraries
      in /overrides. In general, these versions will be incompatible with the
      ones in /usr/lib/x86_64-linux-gnu, which unfortunately are the ones that
      get pulled in via the DT_RPATH.
      
      This reverts commit 91478a07.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      a32d9290
  13. Nov 11, 2019
  14. Nov 08, 2019
    • Simon McVittie's avatar
      Build -system-info and -check-locale with relative DT_RPATH · 91478a07
      Simon McVittie authored
      
      This ensures that they can find the non-ubiquitous json-glib library,
      and the steam-runtime-tools library, even if relocated into a
      non-standard prefix like the LD_LIBRARY_PATH Steam Runtime.
      
      Using DT_RPATH in preference to DT_RUNPATH means we take all our direct
      and indirect dependencies from the same place. This is important when
      libjson-glib (which won't ordinarily have a RUNPATH or RPATH) pulls in
      GIO as an indirect dependency of check-locale, which doesn't directly
      depend on GIO. The GIO library we get must match the versions of GLib
      and GObject we're using.
      
      This also bypasses LD_LIBRARY_PATH.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      91478a07
  15. Nov 05, 2019
  16. Oct 31, 2019
  17. Oct 29, 2019
    • Jeremy Whiting's avatar
      Add check-vulkan to draw a triangle using vulkan api. · fae5ff63
      Jeremy Whiting authored
      %multiarch%-check-vulkan uses vulkan to draw a simple triangle
      in a 200x200 window (next commit will not draw the window)
      and reports any issues found.
      Exit code is 0 on success.
      shader.frag and shader.vert are shader source files compiled
      into shaders/frag.spv and shaders/vert.spv respectively by using
      glslc such as:
      glslc shader.frag -o shaders/frag.spv
      glslc shader.vert -o shaders/vert.spv
      Binary shaders included in commit because glslc hasn't been
      packaged for scout runtime yet.
      Also add libvulkan-dev and libxcb1-dev to ci dependencies.
      fae5ff63
  18. Oct 24, 2019
  19. Sep 26, 2019
  20. Sep 09, 2019
  21. Aug 22, 2019
  22. Aug 20, 2019
  23. Aug 16, 2019
  24. Aug 06, 2019
Loading