11# Versions
22x-gl-version : &gl-version '1.4'
33x-gl-versions : &gl-versions 25.08;1.4
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
45x-runtime-version : &runtime-version '25.08'
56# Flatpak manifest
67app-id : com.jagexlauncher.JagexLauncher
@@ -9,22 +10,42 @@ runtime-version: *runtime-version
910sdk : org.freedesktop.Sdk
1011command : jagex-run
1112finish-args :
13+ # pressure vessel
14+ - --device=all
15+ - --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:/app/bin/heroic/resources/app.asar.unpacked/build/bin/linux
16+ - --env=LD_LIBRARY_PATH=/usr/lib/extensions/vulkan/gamescope/lib
17+ - --persist=Games
18+ - --persist=.local
19+ - --filesystem=xdg-run/gamescope-0:rw
20+ # See: https://github.com/flathub/com.valvesoftware.Steam/commit/0538256facdb0837c33232bc65a9195a8a5bc750
21+ - --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
22+ - --allow=per-app-dev-shm
23+ # umu
1224 - --share=ipc
1325 - --socket=x11
1426 - --socket=wayland
1527 - --socket=pulseaudio
16- - --device=dri
1728 - --share=network
18- - --allow=multiarch
1929 - --allow=devel
30+ - --allow=multiarch
2031 - --talk-name=org.freedesktop.Notifications
32+ - --talk-name=org.freedesktop.Flatpak
33+ - --filesystem=xdg-data/icons:create
34+ - --filesystem=xdg-run/app/com.discordapp.Discord
35+ - --filesystem=xdg-run/discord-ipc-0
2136sdk-extensions :
2237 - org.freedesktop.Sdk.Compat.i386
2338 - org.freedesktop.Sdk.Extension.openjdk17
2439add-extensions :
2540 org.freedesktop.Platform.Compat.i386 :
2641 directory : lib/i386-linux-gnu
2742 version : *runtime-version
43+
44+ org.freedesktop.Platform.Compat.i386.Debug :
45+ directory : lib/debug/lib/i386-linux-gnu
46+ version : *runtime-version
47+ no-autodownload : true
48+
2849 org.freedesktop.Platform.GL32 :
2950 directory : lib/i386-linux-gnu/GL
3051 version : *gl-version
@@ -33,10 +54,61 @@ add-extensions:
3354 no-autodownload : true
3455 autodelete : false
3556 add-ld-path : lib
36- merge-dirs : vulkan/icd.d;glvnd/egl_vendor.d;OpenCL/vendors;lib/dri;lib/d3d;vulkan/explicit_layer.d;vulkan/implicit_layer.d
57+ merge-dirs : *gl-merge-dirs
3758 download-if : active-gl-driver
3859 enable-if : active-gl-driver
60+ autoprune-unless : active-gl-driver
61+
62+ org.freedesktop.Platform.GL32.Debug :
63+ directory : lib/debug/lib/i386-linux-gnu/GL
64+ version : *gl-version
65+ versions : *gl-versions
66+ subdirectories : true
67+ no-autodownload : true
68+ merge-dirs : *gl-merge-dirs
69+ enable-if : active-gl-driver
70+ autoprune-unless : active-gl-driver
71+
72+ org.freedesktop.Platform.VAAPI.Intel.i386 :
73+ directory : lib/i386-linux-gnu/dri/intel-vaapi-driver
74+ version : *runtime-version
75+ versions : *runtime-version
76+ autodelete : false
77+ no-autodownload : true
78+ add-ld-path : lib
79+ download-if : have-intel-gpu
80+ autoprune-unless : have-intel-gpu
81+
3982modules :
83+ - name : platform-bootstrap
84+ buildsystem : simple
85+ build-commands :
86+ - |
87+ set -e
88+ mkdir -p /app/bin
89+ mkdir -p /app/lib/i386-linux-gnu
90+ mkdir -p /app/lib/i386-linux-gnu/GL
91+ mkdir -p /app/lib/i386-linux-gnu/dri/intel-vaapi-driver
92+ mkdir -p /app/lib/debug/lib/i386-linux-gnu
93+ mkdir -p /app/lib/debug/lib/i386-linux-gnu/GL
94+ install -Dm644 -t /app/etc ld.so.conf
95+ mkdir -p /app/lib{,32}/ffmpeg
96+ mkdir -p /app/share/steam/compatibilitytools.d
97+ mkdir -p /app/utils /app/share/vulkan
98+ ln -srv /app/{utils/,}share/vulkan/explicit_layer.d
99+ ln -srv /app/{utils/,}share/vulkan/implicit_layer.d
100+ mkdir -p /app/links/lib
101+ ln -srv /app/lib /app/links/lib/x86_64-linux-gnu
102+ ln -srv /app/lib32 /app/links/lib/i386-linux-gnu
103+ sources :
104+ - type : inline
105+ dest-filename : ld.so.conf
106+ contents : |
107+ # We just make any GL32 extension have higher priority
108+ include /run/flatpak/ld.so.conf.d/app-*-org.freedesktop.Platform.GL32.*.conf
109+ /app/lib32
110+ /app/lib/i386-linux-gnu
111+ /lib64
40112 - name : libnotify
41113 buildsystem : meson
42114 config-opts :
@@ -58,35 +130,40 @@ modules:
58130 - name : openjdk
59131 buildsystem : simple
60132 build-commands :
133+ # https://gitlab.com/hdos/issues/-/issues/2004
61134 - /usr/lib/sdk/openjdk17/install.sh
62135 - mv /app/jre/bin/java /app/jre/bin/java.bk
63136 - mv java /app/jre/bin/java
64137 - chmod +x /app/jre/bin/java
65138 sources :
66139 - type : script
67- dest-filename : java # https://gitlab.com/hdos/issues/-/issues/2004
140+ dest-filename : java
68141 commands :
69142 -
70143 # !/bin/bash
71- - /app/jre/bin/java.bk $(echo "$@" | sed 's|--add-opens java.desktop/java.awt=ALL-UNNAMED||g')
72- - name : wine -ge
144+ - /run/parent/ app/jre/bin/java.bk $(echo "$@" | sed 's|--add-opens java.desktop/java.awt=ALL-UNNAMED||g')
145+ - name : proton -ge
73146 buildsystem : simple
74147 build-commands :
75- - mkdir wine
76- - tar xf wine .tar.xz -C wine --strip-components 1 # String top level dir and place into predictable directory name to decouple from the name of the top-level dir
148+ - mkdir proton
149+ - tar xf protonge .tar.xz -C proton --strip-components 1
77150 - install --directory /app/opt
78- - mv wine /app/opt/wine
151+ - chmod 755 -R proton
152+ - mv proton /app/opt/proton
79153 sources :
80154 - type : file
81- dest-filename : wine.tar.xz
82- url : https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton8-26/wine-lutris-GE-Proton8-26-x86_64.tar.xz
83- sha512 : 3abd578ed45a16096843936e0258799450e6a5751bc67afaf8c58cd245c40e62794a89af25ae482d74d5ca2b7527d17ff77232781c6d9cf97bc02976c2f960bd
84- x-checker-data :
85- type : json
86- url : https://api.github.com/repos/GloriousEggroll/wine-ge-custom/releases/latest
87- version-query : .tag_name | sub("^GE-Proton-"; "")
88- url-query : .assets[] | select(.name=="wine-lutris-" + $version + "-x86_64.tar.xz")
89- | .browser_download_url
155+ dest-filename : protonge.tar.xz
156+ url : https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton10-27/GE-Proton10-27.tar.gz
157+ sha512 : 7bc683b62a9cdf027089af501c93cf78c7aaef30c70010c54389d199894a679870becfda417ad1761c4d8faa17ac3d2da805d4c4efce8992197eaff74fcb5fea
158+ - name : umu-run
159+ buildsystem : simple
160+ build-commands :
161+ - |
162+ install umu-run /app/bin/umu-run
163+ sources :
164+ - type : archive
165+ url : https://github.com/Open-Wine-Components/umu-launcher/releases/download/1.3.0/umu-launcher-1.3.0-zipapp.tar
166+ sha256 : 36502de766f3cc549ff85196a04fb5afdb4eb2a72c023f22fd25895df91fda2f
90167 - name : runelite-jar
91168 buildsystem : simple
92169 build-commands :
@@ -110,7 +187,7 @@ modules:
110187 -
111188 # !/bin/bash
112189 - set -x
113- - /app/jre/bin/java.bk -Duser.home="$XDG_DATA_HOME/user_home" -jar /app/RuneLite.jar
190+ - /run/parent/ app/jre/bin/java.bk -Duser.home="$XDG_DATA_HOME/user_home" -jar /run/parent /app/RuneLite.jar
114191 -J-Duser.home="$XDG_DATA_HOME/user_home"
115192 - name : hdos-jar
116193 buildsystem : simple
@@ -126,13 +203,13 @@ modules:
126203 type : html
127204 url : https://cdn.hdos.dev/client/getdown.txt
128205 version-pattern : launcher.version = (\d.*)
129- url-template : https://cdn.hdos.dev/launcher/v $version/hdos-launcher.jar
206+ url-template : https://cdn.hdos.dev/launcher/$version/hdos-launcher.jar
130207 - type : script
131- dest-filename : HDOS.exe # We name this bash script .exe bc Jagex Launcher runs RuneLite.exe. Wine is able to somehow intepret it is a bash script and run that instead.
208+ dest-filename : HDOS.exe
132209 commands :
133210 -
134211 # !/bin/bash
135- - /app/jre/bin/java -jar /app/hdos-launcher.jar
212+ - /run/parent/ app/jre/bin/java -jar /run/parent /app/hdos-launcher.jar
136213 - name : jagex-launcher
137214 buildsystem : simple
138215 build-commands :
0 commit comments