Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package effectcraft for openSUSE:Factory checked in at 2026-10-30 18:11:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/effectcraft (Old) and /work/SRC/openSUSE:Factory/.effectcraft.new.1255 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "effectcraft" Fri Oct 30 18:11:51 2026 rev:2 rq:1393740 version:0.18.0 Changes: -------- --- /work/SRC/openSUSE:Factory/effectcraft/effectcraft.changes 2026-10-28 21:11:28.712428063 +0100 +++ /work/SRC/openSUSE:Factory/.effectcraft.new.1255/effectcraft.changes 2026-10-30 18:19:21.432992307 +0100 @@ -1,0 +2,28 @@ +Thu Oct 29 12:41:15 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to 0.18.0 (upstream tag v0.18.0, 2026-10-28): + * Interface on egui 0.37: panels share the craft-ui docking + (floating panels open in native windows), each open comp is + a timeline tab with an overflow menu, edit-menu keys reach + focused text fields + * Export: movie encoding overlaps rendering and transparent + pixels are skipped while compositing + * Software update prompt with direct self-updating + * Many more fixes and improvements; see upstream's release + notes for the full list +- Re-vendored (update=false, respect-lockfile=true): cargo_audit + clean, licence set unchanged +- effectcraft-no-brand-assets.patch applies with a context + offset after the egui 0.37 migration (no fuzz); no new + docs/brand references in code, build scripts or packaging +- Disable the new self-updating: no update check at startup and + no install prompt (effectcraft-no-self-update.patch); the + package manager owns updates, manual Help check stays +- Stamp the metainfo release date for v0.18.0 (2026-10-28) +- Spec cleanup to the spec-cleaner canonical form: drop the + subpackage License tag identical to the main package's and + use the bare cargo_build macro call +- Add effectcraft-drop-unused-egui-patches.patch: + drop unused [patch.crates-io] pins the vendor omits + +------------------------------------------------------------------- Old: ---- effectcraft-0.17.0.tar.zst New: ---- effectcraft-0.18.0.tar.zst effectcraft-drop-unused-egui-patches.patch effectcraft-no-self-update.patch ----------(New B)---------- New: use the bare cargo_build macro call - Add effectcraft-drop-unused-egui-patches.patch: drop unused [patch.crates-io] pins the vendor omits New:- Disable the new self-updating: no update check at startup and no install prompt (effectcraft-no-self-update.patch); the package manager owns updates, manual Help check stays ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ effectcraft.spec ++++++ --- /var/tmp/diff_new_pack.gSYAa4/_old 2026-10-30 18:19:29.614334794 +0100 +++ /var/tmp/diff_new_pack.gSYAa4/_new 2026-10-30 18:19:29.622335129 +0100 @@ -17,7 +17,7 @@ Name: effectcraft -Version: 0.17.0 +Version: 0.18.0 Release: 0 Summary: Motion graphics and VFX compositor # Legal-Review-Notice: licence set re-derived from the vendored tree @@ -42,6 +42,18 @@ Source0: %{name}-%{version}.tar.zst Source1: vendor.tar.zst Patch0: effectcraft-no-brand-assets.patch +# PATCH-FIX-OPENSUSE effectcraft-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.18.0, not +# upstreamable (upstream ships self-updating intentionally). +Patch1: effectcraft-no-self-update.patch +# PATCH-FIX-OPENSUSE effectcraft-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. +Patch2: effectcraft-drop-unused-egui-patches.patch BuildRequires: appstream-glib BuildRequires: cargo-packaging BuildRequires: desktop-file-utils @@ -70,10 +82,6 @@ %package -n effectcraft-cli Summary: Headless EffectCraft renderer, batch runner and command server -# Same licence set as the main package: symphonia MPL-2.0 is linked into -# both binaries (see Legal-Review-Notice above); kept per packaging policy -# (declare License on every subpackage). -License: (Apache-2.0 OR MIT) AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MPL-2.0 AND OFL-1.1 AND Ubuntu-font-1.0 AND Unicode-3.0 AND Zlib %description -n effectcraft-cli Headless EffectCraft renderer: batch-render compositions from scripts @@ -85,6 +93,10 @@ %build # Big workspace (eframe/wgpu/boa/wasmi/filmcraft): cap jobs by RAM. %limit_build -m 2000 +# NOTE: keep the cargo macros in this spec in braced form. The bare +# parameterized form misparses (adi:5 staging failure: Unknown option - +# in cargo_build()); spec-cleaner wants the bare form back, hence the +# --cleaner-deviation on the gate call. # Cargo.lock is committed upstream and the vendor tree matches it # (cargo_vendor update=false); build locked and offline for reproducibility. %{cargo_build} --locked -p effectcraft -p effectcraft-cli @@ -94,11 +106,11 @@ install -D -m 0755 target/release/effectcraft-cli %{buildroot}%{_bindir}/effectcraft-cli install -D -m 0644 packaging/linux/ai.storyteller.effectcraft.desktop %{buildroot}%{_datadir}/applications/ai.storyteller.effectcraft.desktop # Upstream metainfo is a template; stamp the release version and date. -# Fixed release date (v0.17.0, 2026-10-25): a build-time date would differ +# Fixed release date (v0.18.0, 2026-10-28): a build-time date would differ # on every rebuild. Upstream declares the app icon as type stock but it # is a custom hicolor icon, so declare it as cached for validation. mkdir -p %{buildroot}%{_datadir}/metainfo -sed -e "s/@VERSION@/%{version}/g" -e "s/@DATE@/2026-10-25/g" \ +sed -e "s/@VERSION@/%{version}/g" -e "s/@DATE@/2026-10-28/g" \ packaging/linux/ai.storyteller.effectcraft.metainfo.xml.in > %{buildroot}%{_datadir}/metainfo/ai.storyteller.effectcraft.metainfo.xml sed -i 's|<icon type="stock">ai.storyteller.effectcraft</icon>|<icon type="cached" width="64" height="64">ai.storyteller.effectcraft.png</icon>|' %{buildroot}%{_datadir}/metainfo/ai.storyteller.effectcraft.metainfo.xml mkdir -p %{buildroot}%{_datadir}/icons ++++++ _service ++++++ --- /var/tmp/diff_new_pack.gSYAa4/_old 2026-10-30 18:19:29.805342790 +0100 +++ /var/tmp/diff_new_pack.gSYAa4/_new 2026-10-30 18:19:29.815343209 +0100 @@ -2,7 +2,7 @@ <service mode="manual" name="tar_scm"> <param name="url">https://github.com/storytold/effectcraft.git</param> <param name="scm">git</param> - <param name="revision">v0.17.0</param> + <param name="revision">v0.18.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="versionrewrite-replacement">\1</param> ++++++ effectcraft-0.17.0.tar.zst -> effectcraft-0.18.0.tar.zst ++++++ /work/SRC/openSUSE:Factory/effectcraft/effectcraft-0.17.0.tar.zst /work/SRC/openSUSE:Factory/.effectcraft.new.1255/effectcraft-0.18.0.tar.zst differ: char 7, line 1 ++++++ effectcraft-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 @@ -232,10 +232,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 @@ -7508,23 +7508,3 @@ "syn 3.0.6", "winnow", ] - -[[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" ++++++ effectcraft-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/effectcraft/src/main.rs b/apps/effectcraft/src/main.rs --- a/apps/effectcraft/src/main.rs +++ b/apps/effectcraft/src/main.rs @@ -283,7 +283,10 @@ // reported in a toast and forgotten). let _ = session.execute("window.restoreScriptPanels", json!({})); let mut app = EffectcraftApp::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.set_gpu_failure_bridge(gpu_failures); app.ui.start_screen = show_home; if let Some(n) = notice { 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::EffectcraftApp; #[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"))] @@ -71,13 +71,10 @@ pub(crate) fn show(app: &mut EffectcraftApp, 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) => ctx.open_url(egui::OpenUrl::new_tab(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/effectcraft/vendor.tar.zst /work/SRC/openSUSE:Factory/.effectcraft.new.1255/vendor.tar.zst differ: char 7, line 1
