From dfc6401a1bc0b2b0a7da00316d0a4b8941e7bea3 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Fri, 23 Oct 2026 15:28:06 +0200 Subject: [PATCH] chore: move ruffle to 0.7.1 and openh264 2.7.0 Ruffle now pins OpenH264 2.7.0 (openh264.rs:46,61-96): new soname .so.8, new sha256 per build, and a Windows aarch64 build. --- emulators/ruffle.yml | 123 +++++++++++++++++++++++-------------------- 1 file changed, 67 insertions(+), 56 deletions(-) diff --git a/emulators/ruffle.yml b/emulators/ruffle.yml index 3f04cca8..61da372f 100644 --- a/emulators/ruffle.yml +++ b/emulators/ruffle.yml @@ -4,8 +4,8 @@ core_classification: game_engine source: "https://github.com/ruffle-rs/ruffle" upstream: "https://github.com/ruffle-rs/ruffle" profiled_date: "2026-09-17" -source_commit: "ed55e72394d21d7784b0a914fd4525608c6a5661" -core_version: "0.6.0" +source_commit: "045db00b393aed22a462d29cb6c25efa26be90a0" +core_version: "0.7.1" display_name: "Adobe Flash (Ruffle)" cores: - ruffle @@ -24,10 +24,10 @@ notes: | vulkan --config /var/data/ruffle --save-directory /ruffle `. The ActionScript class library is compiled by build_playerglobal into playerglobal_avm1.swf and playerglobal_avm2.swf and linked into the binary - from OUT_DIR (core/src/avm1/globals.rs:88, core/src/avm2/globals.rs:549), so + from OUT_DIR (core/src/avm1/globals.rs:82, core/src/avm2/globals.rs:548), so startup reads nothing. Locale texts, wgsl shaders, the window icon and the OpenH264 license are embedded the same way (desktop/src/gui/locale.rs:7-12, - desktop/src/app.rs:464, render/wgpu/src/shaders.rs:30-95, + desktop/src/app.rs:490, render/wgpu/src/shaders.rs:30-95, desktop/src/gui/movie.rs:44, desktop/src/gui/dialogs/preferences_dialog.rs:517). @@ -35,15 +35,15 @@ notes: | feature and pulls ruffle_video_external with openh264 (desktop/Cargo.toml:27,84,92), and enable_openh264 defaults to true (desktop/src/preferences.rs:291,316). OpenH264Codec::load first dlopens the - system sonames libopenh264.so.7, libopenh264.so.2.4.1 and libopenh264.so on + system sonames libopenh264.so.8, libopenh264.so.2.7.0 and libopenh264.so on Linux, then falls back to /ruffle/video/ and fetches the Cisco binary from ciscobinary.openh264.org bz2-compressed into it - (video/external/src/decoder/openh264.rs:53-56,109-133,173-191, + (video/external/src/decoder/openh264.rs:53-56,113-137,177-195, desktop/src/player.rs:234-241). Whether the library was already there or was just downloaded, its SHA-256 is checked before loading and the size is read only to format the mismatch message - (video/external/src/decoder/openh264.rs:135-146), and WelsGetCodecVersion must - answer 2.4.1 exactly (video/external/src/decoder/openh264.rs:46,153-166). The + (video/external/src/decoder/openh264.rs:139-150), and WelsGetCodecVersion must + answer 2.7.0 exactly (video/external/src/decoder/openh264.rs:46,157-170). The cache root comes from dirs::cache_dir(), ~/.cache/ruffle by default, and --cache-directory moves it (desktop/src/cli.rs:31-35,148). Without the library the player still starts: ExternalVideoBackend wraps SoftwareVideoBackend, so @@ -51,23 +51,24 @@ notes: | (video/external/src/backend.rs:41,51-69,73-80). Text uses system fonts. fontdb::Database::load_system_fonts() fills the - database at startup (desktop/src/app.rs:433-434), and both the Flash device + database at startup (desktop/src/app.rs:459-460), and both the Flash device fonts and the egui menu bar resolve family names against it and take whatever - face the host answers with (desktop/src/backends/ui.rs:321-360, - desktop/src/gui/controller.rs:741-787). The face is memory-mapped and parsed + face the host answers with (desktop/src/backends/ui.rs:321-380, + desktop/src/gui/controller.rs:754-800), device font names case-insensitively. + The face is memory-mapped and parsed by Ruffle's own rasterizer unless preferences.toml sets device_font_renderer to freetype, which routes Linux builds through FreetypeFontRenderer instead; the freetype default feature only compiles that branch, the preference - selects it (desktop/src/backends/ui.rs:190-192,443-487,489-519, + selects it (desktop/src/backends/ui.rs:190-192,463-507,509-539, desktop/src/preferences/read.rs:74-75, desktop/Cargo.toml:84). The families asked for are Times New Roman, Arial, Courier New and their metric-compatible substitutes, plus the CJK, Hebrew, Arabic and Thai faces - (desktop/src/player.rs:361-414, desktop/src/gui/controller.rs:620-694), and + (desktop/src/player.rs:361-414, desktop/src/gui/controller.rs:633-707), and on Unix fontconfig sorts the fallback chain - (desktop/src/backends/ui.rs:363-376,536-628). No name, path, size or hash is + (desktop/src/backends/ui.rs:383-396,556-648). No name, path, size or hash is fixed anywhere. The compiled-in Noto Sans subset sits behind the default_font feature, which the web and exporter crates enable and the desktop build does - not (core/src/player.rs:84-85, core/Cargo.toml:82,95, web/Cargo.toml:63-65, + not (core/src/player.rs:84-85, core/Cargo.toml:81,94, web/Cargo.toml:63-65, exporter/Cargo.toml:16, desktop/Cargo.toml:23), so on the desktop an unmatched family leaves the run without that face rather than falling back to a bundled one. @@ -84,86 +85,96 @@ notes: | (core/src/avm2/error_messages.rs:237). files: - # -- OpenH264 2.4.1 decoder, one build per OS and architecture -- + # -- OpenH264 2.7.0 decoder, one build per OS and architecture -- # The player fetches the build for its host into /ruffle/video/ the # first time a movie loads, with no prompt, so none needs to be supplied. - - name: libopenh264-2.4.1-linux64.7.so - path: "video/libopenh264-2.4.1-linux64.7.so" + - name: libopenh264-2.7.0-linux64.8.so + path: "video/libopenh264-2.7.0-linux64.8.so" system: flash required: false bundled: true - description: "OpenH264 2.4.1 decoder library, Linux x86_64" - sha256: "1392d21466bc638e68151b716d5b2086d54cd812afd43253f1adb5b6e0185f51" + description: "OpenH264 2.7.0 decoder library, Linux x86_64" + sha256: "1522f873a482923c5ec018a4415e1866898197528828c50f90fd300c94620df3" validation: [sha256] - source_ref: "video/external/src/decoder/openh264.rs:65-68, 104-146, 173-191" + source_ref: "video/external/src/decoder/openh264.rs:65-68, 108-150, 177-195" - - name: libopenh264-2.4.1-linux-arm64.7.so - path: "video/libopenh264-2.4.1-linux-arm64.7.so" + - name: libopenh264-2.7.0-linux-arm64.8.so + path: "video/libopenh264-2.7.0-linux-arm64.8.so" system: flash required: false bundled: true - description: "OpenH264 2.4.1 decoder library, Linux aarch64" - sha256: "e8ea7e42855ceb4a90e7bd0b3abeba0c58b5f97166e8b0a30eefd58e099557a4" + description: "OpenH264 2.7.0 decoder library, Linux aarch64" + sha256: "9ac664b0154fd0868491c2a904397b8a05779874c0603b8b1f16ad15de1ffd82" validation: [sha256] - source_ref: "video/external/src/decoder/openh264.rs:73-76, 104-146, 173-191" + source_ref: "video/external/src/decoder/openh264.rs:73-76, 108-150, 177-195" - - name: libopenh264-2.4.1-linux-arm.7.so - path: "video/libopenh264-2.4.1-linux-arm.7.so" + - name: libopenh264-2.7.0-linux-arm.8.so + path: "video/libopenh264-2.7.0-linux-arm.8.so" system: flash required: false bundled: true - description: "OpenH264 2.4.1 decoder library, Linux arm" - sha256: "fd1dfb27d30bb72e903c9d2b4c650104a4369d2e7ffe8a4a533e8db2e7e9b19e" + description: "OpenH264 2.7.0 decoder library, Linux arm" + sha256: "c9702982cad7ae0da05ca1e62834666f56b0290484af463f0887c8c48043e82b" validation: [sha256] - source_ref: "video/external/src/decoder/openh264.rs:69-72, 104-146, 173-191" + source_ref: "video/external/src/decoder/openh264.rs:69-72, 108-150, 177-195" - - name: libopenh264-2.4.1-linux32.7.so - path: "video/libopenh264-2.4.1-linux32.7.so" + - name: libopenh264-2.7.0-linux32.8.so + path: "video/libopenh264-2.7.0-linux32.8.so" system: flash required: false bundled: true - description: "OpenH264 2.4.1 decoder library, Linux x86" - sha256: "b7cf0e407f99056d90cbf62787a34820a7595b2129b165319d50766e00a66704" + description: "OpenH264 2.7.0 decoder library, Linux x86" + sha256: "7d095448e75ea49799e48cc11f079091f4c61b127dd71ece27b3496359102ecf" validation: [sha256] - source_ref: "video/external/src/decoder/openh264.rs:61-64, 104-146, 173-191" + source_ref: "video/external/src/decoder/openh264.rs:61-64, 108-150, 177-195" - - name: libopenh264-2.4.1-mac-arm64.dylib - path: "video/libopenh264-2.4.1-mac-arm64.dylib" + - name: libopenh264-2.7.0-mac-arm64.dylib + path: "video/libopenh264-2.7.0-mac-arm64.dylib" system: flash required: false bundled: true - description: "OpenH264 2.4.1 decoder library, macOS aarch64" - sha256: "213ff93831cfa3dd6d7ad0c3a3403a6ceedf4ac1341e1278b5b869d42fefb496" + description: "OpenH264 2.7.0 decoder library, macOS aarch64" + sha256: "2e1ae3cd10c08328ca03a1f304fd2a1a2a7e5658c6d5a8582101a963f7995ef0" validation: [sha256] - source_ref: "video/external/src/decoder/openh264.rs:81-84, 104-146, 173-191" + source_ref: "video/external/src/decoder/openh264.rs:81-84, 108-150, 177-195" - - name: libopenh264-2.4.1-mac-x64.dylib - path: "video/libopenh264-2.4.1-mac-x64.dylib" + - name: libopenh264-2.7.0-mac-x64.dylib + path: "video/libopenh264-2.7.0-mac-x64.dylib" system: flash required: false bundled: true - description: "OpenH264 2.4.1 decoder library, macOS x86_64" - sha256: "cc0ba518a63791c37571f3c851f0aa03a4fbda5410acc214ecd4f24f8d1c478e" + description: "OpenH264 2.7.0 decoder library, macOS x86_64" + sha256: "31d38bcbe9348e9b44ca38dd08fa1e2af79ffce6521276449ef05e3cd39136f4" validation: [sha256] - source_ref: "video/external/src/decoder/openh264.rs:77-80, 104-146, 173-191" + source_ref: "video/external/src/decoder/openh264.rs:77-80, 108-150, 177-195" - - name: openh264-2.4.1-win64.dll - path: "video/openh264-2.4.1-win64.dll" + - name: openh264-2.7.0-win64.dll + path: "video/openh264-2.7.0-win64.dll" system: flash required: false bundled: true - description: "OpenH264 2.4.1 decoder library, Windows x86_64" - sha256: "081b0c081480d177cbfddfbc90b1613640e702f875897b30d8de195cde73dd34" + description: "OpenH264 2.7.0 decoder library, Windows x86_64" + sha256: "0ef5e7f3b38753b15c13afa0418d4d7805fa228e6adfd3e425bbf758cff1c288" validation: [sha256] - source_ref: "video/external/src/decoder/openh264.rs:89-92, 104-146, 173-191" + source_ref: "video/external/src/decoder/openh264.rs:89-92, 108-150, 177-195" - - name: openh264-2.4.1-win32.dll - path: "video/openh264-2.4.1-win32.dll" + - name: openh264-2.7.0-win32.dll + path: "video/openh264-2.7.0-win32.dll" system: flash required: false bundled: true - description: "OpenH264 2.4.1 decoder library, Windows x86" - sha256: "83270149640469c994a62cc32a6d8c0413cd7b802b7f1f2f532159f5bdc1cedd" + description: "OpenH264 2.7.0 decoder library, Windows x86" + sha256: "ee34d9606c5cc96cdea694a6bc95ed1b6230b9854689f56c7fa30d211daf48b0" validation: [sha256] - source_ref: "video/external/src/decoder/openh264.rs:85-88, 104-146, 173-191" + source_ref: "video/external/src/decoder/openh264.rs:85-88, 108-150, 177-195" + + - name: openh264-2.7.0-win-arm64.dll + path: "video/openh264-2.7.0-win-arm64.dll" + system: flash + required: false + bundled: true + description: "OpenH264 2.7.0 decoder library, Windows aarch64" + sha256: "2f8f11a40d1450fd5c7afc1c5e38b9f6ba6c95c47582845b16c0bfe154ed75a4" + validation: [sha256] + source_ref: "video/external/src/decoder/openh264.rs:93-96, 108-150, 177-195"