id: org.openwinecomponents.umu.umu-launcher runtime: org.freedesktop.Platform runtime-version: &runtime-version '23.08' x-gl-version: &gl-version '1.4' x-gl-versions: &gl-versions 23.08;23.08-extra;1.4 x-gl-merge-dirs: &gl-merge-dirs vulkan/icd.d;glvnd/egl_vendor.d;OpenCL/vendors;lib/dri;lib/d3d;vulkan/explicit_layer.d;vulkan/implicit_layer.d sdk: org.freedesktop.Sdk command: umu-run separate-locales: false sdk-extensions: - org.freedesktop.Sdk.Compat.i386 - org.freedesktop.Sdk.Extension.toolchain-i386 finish-args: - --allow=devel - --allow=multiarch - --device=all - --allow=bluetooth - --allow=per-app-dev-shm - --env=PATH=/app/bin:/app/utils/bin:/usr/bin:/usr/lib/extensions/vulkan/MangoHud/bin:/usr/lib/extensions/vulkan/gamescope/bin:/usr/lib/extensions/vulkan/OBSVkCapture/bin - --filesystem=xdg-data/lutris:rw - --filesystem=xdg-data/Steam:rw - --filesystem=xdg-data/applications:rw - --filesystem=~/.steam:rw - --filesystem=~/Games:rw - --filesystem=~/.local/share/Steam:rw - --filesystem=~/.var/app/com.valvesoftware.Steam:rw - --filesystem=xdg-download - --env=TZ= - --unset-env=TZ - --env=LC_ADDRESS=C - --env=LC_COLLATE=C - --env=LC_MONETARY=C - --env=LC_MEASUREMENT=C - --env=LC_NAME=C - --env=LC_NUMERIC=C - --env=LC_TELEPHONE=C - --env=SDL_VIDEODRIVER= - --unset-env=SDL_VIDEODRIVER - --env=DBUS_FATAL_WARNINGS=0 - --env=XDG_CONFIG_DIRS=/etc/xdg:/usr/lib/x86_64-linux-gnu/GL:/usr/lib/i386-linux-gnu/GL # Wine uses UDisks2 to enumerate disk drives - --system-talk-name=org.freedesktop.UDisks2 # should fix access to SD card on the deck - --filesystem=/run/media # There are still quite a few users using /mnt/ for external drives - --filesystem=/mnt # should fix steamdeck controler navigation - --filesystem=/run/udev:ro # should fix discord rich presence - --filesystem=xdg-run/app/com.discordapp.Discord:create - --persist=. - --share=ipc - --socket=wayland - --socket=x11 - --socket=pulseaudio - --share=network - --talk-name=org.freedesktop.Notifications - --talk-name=org.kde.StatusNotifierWatcher # Required for bwrap to work - --talk-name=org.freedesktop.portal.Background # --- Steam --- # Pressure Vessel # See https://github.com/flathub/com.valvesoftware.Steam/commit/0538256facdb0837c33232bc65a9195a8a5bc750 - --env=XDG_DATA_DIRS=/app/share:/usr/lib/extensions/vulkan/share:/usr/share:/usr/share/runtime/share:/run/host/user-share:/run/host/share:/usr/lib/pressure-vessel/overrides/share add-extensions: org.freedesktop.Platform.Compat.i386: directory: lib/i386-linux-gnu version: *runtime-version org.freedesktop.Platform.Compat.i386.Debug: directory: lib/debug/lib/i386-linux-gnu version: *runtime-version no-autodownload: true org.freedesktop.Platform.GL32: directory: lib/i386-linux-gnu/GL version: *gl-version versions: *gl-versions subdirectories: true no-autodownload: true autodelete: false add-ld-path: lib merge-dirs: *gl-merge-dirs download-if: active-gl-driver enable-if: active-gl-driver autoprune-unless: active-gl-driver org.freedesktop.Platform.GL32.Debug: directory: lib/debug/lib/i386-linux-gnu/GL version: *gl-version versions: *gl-versions subdirectories: true no-autodownload: true merge-dirs: *gl-merge-dirs enable-if: active-gl-driver autoprune-unless: active-gl-driver org.freedesktop.Platform.VAAPI.Intel.i386: directory: lib/i386-linux-gnu/dri/intel-vaapi-driver version: *runtime-version versions: *runtime-version autodelete: false no-autodownload: true add-ld-path: lib download-if: have-intel-gpu autoprune-unless: have-intel-gpu org.freedesktop.Platform.ffmpeg-full: directory: lib/ffmpeg add-ld-path: . version: *runtime-version no-autodownload: true autodelete: false org.freedesktop.Platform.ffmpeg_full.i386: directory: lib32/ffmpeg add-ld-path: . version: *runtime-version no-autodownload: true autodelete: false com.valvesoftware.Steam.CompatibilityTool: subdirectories: true directory: share/steam/compatibilitytools.d version: stable versions: stable;beta;test no-autodownload: true autodelete: true com.valvesoftware.Steam.Utility: subdirectories: true directory: utils version: stable versions: stable;beta;test add-ld-path: lib merge-dirs: bin;lib/python3.10/site-packages;share/vulkan/explicit_layer.d;share/vulkan/implicit_layer.d;share/steam/compatibilitytools.d; no-autodownload: true autodelete: true modules: - name: platform-bootstrap buildsystem: simple build-commands: - | set -e mkdir -p /app/bin mkdir -p /app/lib/i386-linux-gnu mkdir -p /app/lib/i386-linux-gnu/GL mkdir -p /app/lib/i386-linux-gnu/dri/intel-vaapi-driver mkdir -p /app/lib/debug/lib/i386-linux-gnu mkdir -p /app/lib/debug/lib/i386-linux-gnu/GL install -Dm644 -t /app/etc ld.so.conf mkdir -p /app/lib{,32}/ffmpeg mkdir -p /app/share/steam/compatibilitytools.d mkdir -p /app/utils /app/share/vulkan ln -srv /app/{utils/,}share/vulkan/explicit_layer.d ln -srv /app/{utils/,}share/vulkan/implicit_layer.d mkdir -p /app/links/lib ln -srv /app/lib /app/links/lib/x86_64-linux-gnu ln -srv /app/lib32 /app/links/lib/i386-linux-gnu sources: - type: inline dest-filename: ld.so.conf contents: | # We just make any GL32 extension have higher priority include /run/flatpak/ld.so.conf.d/app-*-org.freedesktop.Platform.GL32.*.conf /app/lib32 /app/lib/i386-linux-gnu /lib64 # These are needed for window management inside gamescope - name: python-flit-core # needed by idna buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/c4/e6/c1ac50fe3eebb38a155155711e6e864e254ce4b6e17fe2429b4c4d5b9e80/flit_core-3.9.0.tar.gz sha256: 72ad266176c4a3fcfab5f2930d76896059851240570ce9a98733b658cb786eba - name: python-ninja # needed by dbus-python buildsystem: simple build-commands: - python3 setup.py build -j${FLATPAK_BUILDER_N_JOBS} -DARCHIVE_DOWNLOAD_DIR="${FLATPAK_BUILDER_BUILDDIR}" - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/00/99/5beedbf09e3ec6b617606df42d04c4251959caddbd98397cce21da4c52d1/ninja-1.10.2.3.tar.gz sha256: e1b86ad50d4e681a7dbdff05fc23bb52cb773edb90bc428efba33fa027738408 - type: file url: https://github.com/Kitware/ninja/archive/v1.10.2.g51db2.kitware.jobserver-1.tar.gz sha256: 549c31ee596566b952c600e23eb9b8d39a4112cd5fdeb2e5a83370669176da40 modules: - name: python-skbuild buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/9e/e2/2e440c30e93fc5b505ee56169a4396b05e797a1daadb721aba429adbfd51/scikit-build-0.15.0.tar.gz sha256: e723cd0f3489a042370b9ea988bbb9cfd7725e8b25b20ca1c7981821fcf65fb9 modules: - name: python-distro # also needed by Lutris, do not add a cleanup property here! buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/b5/7e/ddfbd640ac9a82e60718558a3de7d5988a7d4648385cf00318f60a8b073a/distro-1.7.0.tar.gz sha256: 151aeccf60c216402932b52e40ee477a939f8d58898927378a02abbe852c1c39 - name: python-setuptools-scm buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/d0/43/f038b5009f93bcd77b1b8da9e6d424b739ab17aec9726f3a99eba23d53ca/setuptools_scm-7.0.5.tar.gz sha256: 031e13af771d6f892b941adb6ea04545bbf91ebc5ce68c78aaf3fff6e1fb4844 modules: - name: python-packaging buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz sha256: 026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002 modules: - name: python-pyparsing buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/71/22/207523d16464c40a0310d2d4d8926daffa00ac1f5b1576170a32db749636/pyparsing-3.0.9.tar.gz sha256: 2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb - name: python-typing-extensions buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/9e/1d/d128169ff58c501059330f1ad96ed62b79114a2eb30b8238af63a2e27f70/typing_extensions-4.3.0.tar.gz sha256: e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6 - name: python-tomli buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz sha256: de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f # --- python-xlib --- - name: python-xlib buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . sources: - type: archive url: https://files.pythonhosted.org/packages/source/p/python-xlib/python-xlib-0.33.tar.gz sha256: 55af7906a2c75ce6cb280a584776080602444f75815a7aff4d287bb2d7018b32 # --- filelock --- - name: filelock buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . sources: - type: archive url: https://files.pythonhosted.org/packages/08/dd/49e06f09b6645156550fb9aee9cc1e59aba7efbc972d665a1bd6ae0435d4/filelock-3.15.4.tar.gz sha256: 2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb modules: # --- python-hatchling --- - name: python-hatchling buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/a3/51/8a4a67a8174ce59cf49e816e38e9502900aea9b4af672d0127df8e10d3b0/hatchling-1.25.0.tar.gz sha256: 7064631a512610b52250a4d3ff1bd81551d6d1431c4eb7b72e734df6c74f4262 modules: # --- pathspec --- - name: pathspec buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz sha256: a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 # --- pluggy --- - name: pluggy buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz sha256: 2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1 # --- trove_classifiers --- - name: trove_classifiers buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/78/c9/83f915c3f6f94f4c862c7470284fd714f312cce8e3cf98361312bc02493d/trove_classifiers-2024.7.2.tar.gz sha256: 8328f2ac2ce3fd773cbb37c765a0ed7a83f89dc564c7d452f039b69249d0ac35 # --- hatch-vcs --- - name: hatch-vcs buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/f5/c9/54bb4fa27b4e4a014ef3bb17710cdf692b3aa2cbc7953da885f1bf7e06ea/hatch_vcs-0.4.0.tar.gz sha256: 093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7 # --- umu --- # We use make first to install things like version and /usr/share/ files # We then use pip to overwrite the python-specific installed files to verify # the symlinks are corrected. - name: umu-run buildsystem: simple build-commands: - | git submodule update --init --recursive ./configure.sh --prefix=/app make FLATPAK=xtrue install DESTDIR=/app cp -R /app/app/share/* /app/share/ cp -R /app/usr/* /app/ rm -Rf /app/app/ pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . sources: - type: git url: https://github.com/Open-Wine-Components/umu-launcher.git tag: 1.1.4 modules: # --- packaging --- - name: packaging buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz sha256: 026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002 # --- pyproject_hooks --- - name: pyproject_hooks buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/c7/07/6f63dda440d4abb191b91dc383b472dae3dd9f37e4c1e4a5c3db150531c6/pyproject_hooks-1.1.0.tar.gz sha256: 4b37730834edbd6bd37f26ece6b44802fb1c1ee2ece0e54ddff8bfc06db86965 # --- python-build --- - name: python-build buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/ce/9e/2d725d2f7729c6e79ca62aeb926492abbc06e25910dd30139d60a68bcb19/build-1.2.1.tar.gz sha256: 526263f4870c26f26c433545579475377b2b7588b6f1eac76a001e873ae3e19d # --- python-installer --- - name: python-installer buildsystem: simple build-commands: - pip3 install --no-index --no-build-isolation --prefix="${FLATPAK_DEST}" . cleanup: ['*'] sources: - type: archive url: https://files.pythonhosted.org/packages/05/18/ceeb4e3ab3aa54495775775b38ae42b10a92f42ce42dfa44da684289b8c8/installer-0.7.0.tar.gz sha256: a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631