--- # Loosely based on: # https://github.com/ValveSoftware/steam-runtime/blob/master/setup_chroot.sh # # Copyright © 2013-2016 Valve Corporation # Copyright © 2017-2019 Collabora Ltd. # # Permission is hereby granted, free of charge, to any person obtaining # a copy of these scripts and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. id_prefix: com.valvesoftware.SteamRuntime add_packages_multiarch: - steamrt-libs add_packages: - steamrt-container post_script: | set -eux ln -s /usr/libexec/flatpak-xdg-utils/xdg-email /usr/bin/ ln -s /usr/libexec/flatpak-xdg-utils/xdg-open /usr/bin/ install -d -m755 /usr/lib/locale install -d -m755 /usr/share/i18n if [ -e /usr/share/i18n/locales/en_US ]; then echo "en_US.UTF-8 UTF-8" > /etc/locale.gen localedef -v -i en_US -c -f UTF-8 en_US.UTF-8 || : test -e /usr/lib/locale/locale-archive fi # Arch Linux 32-bit biarch glibc looks for locales here. We might # need to use the host system glibc when pressure-vessel brings in the # host graphics drivers. install -d -m755 /usr/lib32 ln -s ../lib/locale /usr/lib32/locale # Biarch OSs that are the other way round might conceivably look here if [ -d /lib64 ]; then install -d -m755 /usr/lib64 ln -s ../lib/locale /usr/lib64/locale fi # Ensure that the libdrm folder is present install -d -m755 /usr/share/libdrm # Arch Linux uses a non-standard ELF interpreter for some binaries in the # glibc package. We create two symlinks as a workaround. ln -s /lib64/ld-linux-x86-64.so.2 /usr/lib/ # Few lines above we already ensured that /usr/lib32 exists ln -s /lib/ld-linux.so.2 /usr/lib32/ platform: post_script: | set -eux find /usr -type d -empty -print0 | xargs -0 -t -I '{}' -- touch '{}/.exists' if [ -x /usr/bin/python3.5 ] && ! [ -e /usr/bin/python3 ]; then ln -fns python3.5 /usr/bin/python3 fi sdk: add_packages_multiarch: - steamrt-libdebug: debug_symbols: true - steamrt-libdevel add_packages: - steamrt-dev - steamrt-libdebug-non-multiarch: debug_symbols: true - steamrt-libdevel-non-multiarch post_script: | set -eux ln -sv busybox /bin/dos2unix ln -sv busybox /bin/ifconfig ln -sv busybox /bin/ip ln -sv busybox /bin/nc ln -sv busybox /bin/ping ln -sv busybox /bin/ping6 ln -sv busybox /bin/route ln -sv busybox /bin/telnet ln -sv busybox /bin/traceroute ln -sv busybox /bin/traceroute6 ln -sv busybox /bin/unix2dos ln -sv busybox /bin/vi # Workaround bug 714890 in 32-bit clang. Gcc 4.8 changed the include paths. # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=714890 # /usr/include/c++/4.6/i686-linux-gnu/bits/c++config.h # /usr/include/i386-linux-gnu/c++/4.8/bits/c++config.h echo "Before fixing include paths:" ls -ld /usr/include/c++/*/*-linux-gnu ls -ld /usr/include/*-linux-gnu/c++/* if [ -d /usr/include/i386-linux-gnu/c++/4.8 ]; then ln -s /usr/include/i386-linux-gnu/c++/4.8 /usr/include/c++/4.8/i686-linux-gnu fi echo "After fixing include paths:" ls -ld /usr/include/c++/*/*-linux-gnu ls -ld /usr/include/*-linux-gnu/c++/* # Setup compiler alternatives update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 50 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 50 update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.6 50 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100 update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.8 100 update-alternatives --install /usr/bin/gcc gcc /usr/bin/clang-3.4 50 update-alternatives --install /usr/bin/g++ g++ /usr/bin/clang++-3.4 50 update-alternatives --install /usr/bin/gcc gcc /usr/bin/clang-3.6 50 update-alternatives --install /usr/bin/g++ g++ /usr/bin/clang++-3.6 50 # gcc-4.8 is the default update-alternatives --set gcc /usr/bin/gcc-4.8 update-alternatives --set g++ /usr/bin/g++-4.8 update-alternatives --set cpp-bin /usr/bin/cpp-4.8 add-extensions: # FIXME: This is not properly multiarch-aware, but it's enough for a # proof of concept. com.valvesoftware.SteamRuntime.GL: directory: lib/GL subdirectories: true no-autodownload: true autodelete: false add-ld-path: lib download-if: active-gl-driver enable-if: active-gl-driver merge-dirs: vulkan/icd.d;glvnd/egl_vendor.d # FIXME: Ideally this should only be added for 64-bit architectures com.valvesoftware.SteamRuntime.GL32: directory: lib/GL32 subdirectories: true no-autodownload: true autodelete: false add-ld-path: lib download-if: active-gl-driver enable-if: active-gl-driver merge-dirs: vulkan/icd.d;glvnd/egl_vendor.d ...