Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package filmcraft for openSUSE:Factory checked in at 2026-10-30 18:11:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/filmcraft (Old) and /work/SRC/openSUSE:Factory/.filmcraft.new.1255 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "filmcraft" Fri Oct 30 18:11:47 2026 rev:2 rq:1393715 version:0.14.0 Changes: -------- --- /work/SRC/openSUSE:Factory/filmcraft/filmcraft.changes 2026-10-28 21:10:24.671761177 +0100 +++ /work/SRC/openSUSE:Factory/.filmcraft.new.1255/filmcraft.changes 2026-10-30 18:19:04.319275893 +0100 @@ -1,0 +2,39 @@ +Thu Oct 29 12:41:50 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to 0.14.0 (upstream tags v0.14.0, 2026-10-28 and + v0.13.0, 2026-10-25): + * Interface: migrated to egui 0.37, new startup update prompt, + XWayland file drag-and-drop on Wayland, work area bar, Razor + and Option-drag caption editing, captions list follows the + playhead, duplicate-frame markers, transparency grid, complete + French translation, Fujifilm F-Log colour spaces + * Media: uncompressed QuickTime video decodes, animated WebP + imports, PNG sequences honour the alpha toggle, export CPU + thread cap (maxThreads), H.264 export a fifth faster with + byte-identical output, TTML/DFXP overflow fix, stricter + timecode, colour-hex and parameter-range validation + * Harden parsers against hostile input (no CVE assigned): + bounded frame/render/image allocations across AV1, HEVC, + MPEG-2, VP8/VP9, ProRes, DNx, APV, AVIs, Ogg, MXF, OMF, AAF, + TTML/TTS text, captions burn-in, interchange indices and + stored-media filesystem confinement; new fuzz tests + * Many more fixes and improvements; see upstream's release notes + for the full list + * Re-vendored with update=false against the new Cargo.lock + (respect-lockfile true): licence re-derived over the shipped + targets, no new copyleft (new crates MIT, Apache-2.0 or + Unicode-3.0 only), so the tag and Legal-Review-Notice stand; + no new system deps, MSRV still 1.95; cargo_vendor audit clean + (no RUSTSEC advisories) + * Add filmcraft-drop-unused-egui-patches.patch: drop four + unused [patch.crates-io] pins the vendor omits, which broke + the offline build; [[package]] set unchanged +- filmcraft-no-brand-assets.patch still applies unchanged + (no fuzz); + no new docs/brand references in the 0.14.0 tree +- Bump the fixed metainfo release date to 2026-10-28 +- Add filmcraft-no-self-update.patch: distro builds must not phone + home at startup nor install an upstream release over RPM-owned + files; the manual Help check outcome window stays + +------------------------------------------------------------------- Old: ---- filmcraft-0.12.0.tar.zst New: ---- filmcraft-0.14.0.tar.zst filmcraft-drop-unused-egui-patches.patch filmcraft-no-self-update.patch ----------(New B)---------- New: (no RUSTSEC advisories) * Add filmcraft-drop-unused-egui-patches.patch: drop four unused [patch.crates-io] pins the vendor omits, which broke New:- Bump the fixed metainfo release date to 2026-10-28 - Add filmcraft-no-self-update.patch: distro builds must not phone home at startup nor install an upstream release over RPM-owned ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ filmcraft.spec ++++++ --- /var/tmp/diff_new_pack.Rax356/_old 2026-10-30 18:19:07.695417225 +0100 +++ /var/tmp/diff_new_pack.Rax356/_new 2026-10-30 18:19:07.699417392 +0100 @@ -17,7 +17,7 @@ Name: filmcraft -Version: 0.12.0 +Version: 0.14.0 Release: 0 Summary: Timeline video editor written in pure Rust # Legal-Review-Notice: scope is the two shipped binaries (filmcraft in @@ -48,6 +48,18 @@ # with the open-source FilmCraft tile; permanent downstream carry, not # upstreamable (upstream ships the marks intentionally). Patch0: filmcraft-no-brand-assets.patch +# PATCH-FIX-OPENSUSE filmcraft-drop-unused-egui-patches.patch -- drop four +# [patch.crates-io] pins (egui_demo_lib, egui_extras, egui_inspection, +# egui_system_font_provider) that nothing uses (Cargo.lock [[patch.unused]]): +# cargo_vendor omits them from vendor.tar.zst, so any --offline resolve +# fails; upstreamable as cleanup once upstream drops the pins. +Patch1: filmcraft-drop-unused-egui-patches.patch +# PATCH-FIX-OPENSUSE filmcraft-no-self-update.patch -- distro builds +# must not phone home at startup nor offer to install an upstream release +# over RPM-owned files (the package manager owns updates); the manual +# Help check outcome window stays. New upstream behaviour in 0.14.0, not +# upstreamable (upstream ships the machinery intentionally). +Patch2: filmcraft-no-self-update.patch BuildRequires: appstream-glib BuildRequires: c_compiler BuildRequires: cargo >= 1.95 @@ -116,10 +128,10 @@ install -Dm0644 packaging/linux/ai.storyteller.filmcraft.desktop %{buildroot}%{_datadir}/applications/ai.storyteller.filmcraft.desktop install -Dm0644 packaging/linux/ai.storyteller.filmcraft.mime.xml %{buildroot}%{_datadir}/mime/packages/ai.storyteller.filmcraft.xml install -d -m 0755 %{buildroot}%{_datadir}/metainfo -# Fixed upstream release date (v0.12.0, 2026-10-23): a build-time date would +# Fixed upstream release date (v0.14.0, 2026-10-28): a build-time date would # make the metainfo differ on every rebuild, and spec-cleaner would brace # the date-format placeholders as RPM macros, so keep this a plain string. -sed -e "s/@VERSION@/%{version}/g" -e "s/@DATE@/2026-10-23/g" packaging/linux/ai.storyteller.filmcraft.metainfo.xml.in > %{buildroot}%{_datadir}/metainfo/ai.storyteller.filmcraft.metainfo.xml +sed -e "s/@VERSION@/%{version}/g" -e "s/@DATE@/2026-10-28/g" packaging/linux/ai.storyteller.filmcraft.metainfo.xml.in > %{buildroot}%{_datadir}/metainfo/ai.storyteller.filmcraft.metainfo.xml # Upstream declares the app icon as type="stock" but it is a custom hicolor # icon, so declare it as cached for appstream validation. sed -i 's|<icon type="stock">ai.storyteller.filmcraft</icon>|<icon type="cached" width="64" height="64">ai.storyteller.filmcraft.png</icon>|' %{buildroot}%{_datadir}/metainfo/ai.storyteller.filmcraft.metainfo.xml ++++++ _service ++++++ --- /var/tmp/diff_new_pack.Rax356/_old 2026-10-30 18:19:07.797421495 +0100 +++ /var/tmp/diff_new_pack.Rax356/_new 2026-10-30 18:19:07.804421788 +0100 @@ -1,6 +1,6 @@ <services> - <!-- FilmCraft 0.12.0: upstream tags stable releases (v0.12.0 published - 2026-10-23, draft=false prerelease=false); pin the tag, never main. + <!-- FilmCraft 0.14.0: upstream tags stable releases (v0.14.0 published + 2026-10-28, draft=false prerelease=false); pin the tag, never main. docs/brand/ holds the ArtCraft trademarks (LICENSE-brand.txt: forks must remove them), so it is excluded from the tarball and the trademark include_bytes! in crates/ui-egui/src/brand.rs is patched @@ -8,7 +8,7 @@ <service mode="manual" name="tar_scm"> <param name="url">https://github.com/storytold/filmcraft.git</param> <param name="scm">git</param> - <param name="revision">v0.12.0</param> + <param name="revision">v0.14.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="versionrewrite-replacement">\1</param> ++++++ filmcraft-0.12.0.tar.zst -> filmcraft-0.14.0.tar.zst ++++++ /work/SRC/openSUSE:Factory/filmcraft/filmcraft-0.12.0.tar.zst /work/SRC/openSUSE:Factory/.filmcraft.new.1255/filmcraft-0.14.0.tar.zst differ: char 7, line 1 ++++++ filmcraft-drop-unused-egui-patches.patch ++++++ From: openSUSE Publishing <[email protected]> Subject: [PATCH] Drop unused egui patch pins so the offline vendor build resolves Bug: none (downstream build fix, upstreamable as cleanup) Upstream pins four egui crates (egui_demo_lib, egui_extras, egui_inspection, egui_system_font_provider) in [patch.crates-io] that nothing in the workspace uses (Cargo.lock lists all four under [[patch.unused]]). cargo_vendor therefore omits them from vendor.tar.zst, and any --offline/--locked resolve against the vendor directory fails with "patch location ... does not contain packages matching ...". Drop the four unused pins (plus their [[patch.unused]] lock stanzas, so --locked stays satisfied); the [[package]] set is unchanged. --- a/Cargo.toml +++ b/Cargo.toml @@ -170,10 +170,6 @@ egui-winit = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" } egui-wgpu = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" } egui_glow = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" } -egui_extras = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" } egui_kittest = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" } -egui_system_font_provider = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" } eframe = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" } -egui_demo_lib = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" } -egui_inspection = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" } winit = { git = "https://github.com/storytold/winit.git", rev = "a517b3846ee8457d84ee4975110bfda6797c44dc" } --- a/Cargo.lock +++ b/Cargo.lock @@ -8341,23 +8341,3 @@ "syn 3.0.6", "winnow 1.0.4", ] - -[[patch.unused]] -name = "egui_demo_lib" -version = "0.37.0" -source = "git+https://github.com/storytold/egui.git?rev=6d518fc799681571963842f95b55a6b68431b15a#6d518fc799681571963842f95b55a6b68431b15a" - -[[patch.unused]] -name = "egui_extras" -version = "0.37.0" -source = "git+https://github.com/storytold/egui.git?rev=6d518fc799681571963842f95b55a6b68431b15a#6d518fc799681571963842f95b55a6b68431b15a" - -[[patch.unused]] -name = "egui_inspection" -version = "0.37.0" -source = "git+https://github.com/storytold/egui.git?rev=6d518fc799681571963842f95b55a6b68431b15a#6d518fc799681571963842f95b55a6b68431b15a" - -[[patch.unused]] -name = "egui_system_font_provider" -version = "0.37.0" -source = "git+https://github.com/storytold/egui.git?rev=6d518fc799681571963842f95b55a6b68431b15a#6d518fc799681571963842f95b55a6b68431b15a" ++++++ filmcraft-no-self-update.patch ++++++ From: openSUSE Publishing <[email protected]> Subject: [PATCH] No self-update in distro builds: no startup check, no install prompt Bug: none (downstream distribution policy, not upstreamable) The package manager owns updates on a distro install: do not phone home to the releases page on every GUI launch, and never offer to install an upstream release (UPDATE-AND-RESTART) over RPM-owned files. Upstream ships this machinery intentionally for its own builds. Help ▸ Check for Updates stays as an explicit manual action reporting through its outcome window; only the automatic startup check and the self-update install prompt are turned off. diff --git a/apps/filmcraft/src/main.rs b/apps/filmcraft/src/main.rs --- a/apps/filmcraft/src/main.rs +++ b/apps/filmcraft/src/main.rs @@ -254,7 +254,10 @@ } } let mut app = FilmcraftApp::new(session); - app.set_startup_update_check(true); + // Downstream (openSUSE): the package manager owns updates, so the + // desktop app must not check for (and offer to install) upstream + // releases on its own at startup. Manual Help ▸ Check stays. + app.set_startup_update_check(false); app.graphics_notice = notice; if recover == Some(false) { app.dialog = None; diff --git a/crates/ui-egui/src/updates_ui.rs b/crates/ui-egui/src/updates_ui.rs --- a/crates/ui-egui/src/updates_ui.rs +++ b/crates/ui-egui/src/updates_ui.rs @@ -3,7 +3,7 @@ use crate::FilmcraftApp; #[cfg(not(target_arch = "wasm32"))] -use craft_update::updater::{Action, Status, Updater}; +use craft_update::updater::{Status, Updater}; pub(crate) struct Runtime { #[cfg(not(target_arch = "wasm32"))] @@ -85,13 +85,10 @@ pub(crate) fn show(app: &mut FilmcraftApp, ctx: &egui::Context) { #[cfg(not(target_arch = "wasm32"))] { - // The restart helper is scheduled before the app closes, so no update starts over unsaved work. - let clean = !app.session.is_dirty(); - match app.updates_rt.updater.show_if(ctx, clean) { - Action::OpenUrl(url) => crate::links::open(app, ctx, &url), - Action::Close => ctx.send_viewport_cmd(egui::ViewportCommand::Close), - Action::None => {} - } + // Downstream (openSUSE): never draw the self-update prompt, so no + // upstream release is ever installed over RPM-owned files (neither + // at startup nor after a manual check). The manual Check for Updates + // outcome window below stays. // The window answers Help ▸ Check for Updates, so it follows the updater's status. let rt = &mut app.updates_rt; (rt.manual_window_open, rt.status_message) = match rt.updater.status() { ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/filmcraft/vendor.tar.zst /work/SRC/openSUSE:Factory/.filmcraft.new.1255/vendor.tar.zst differ: char 7, line 1
