Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package soundcraft for openSUSE:Factory checked in at 2026-10-30 18:12:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/soundcraft (Old) and /work/SRC/openSUSE:Factory/.soundcraft.new.1255 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "soundcraft" Fri Oct 30 18:12:00 2026 rev:2 rq:1393744 version:0.14.0 Changes: -------- --- /work/SRC/openSUSE:Factory/soundcraft/soundcraft.changes 2026-10-28 21:11:19.830058367 +0100 +++ /work/SRC/openSUSE:Factory/.soundcraft.new.1255/soundcraft.changes 2026-10-30 18:19:57.032482573 +0100 @@ -1,0 +2,29 @@ +Thu Oct 29 12:49:00 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to 0.14.0 (upstream tag v0.14.0, 2026-10-28): + * UI: move to egui 0.37; Tracks, Groups and Clips dock in + full-height columns; dropdown menus grow back after a search + with no matches; mixer labels clarified, host keys kept + during scripted input. + * Edit: Auto Pan keeps the stereo image; paste and Strip + Silence fixes; meters keep every block's peak until the UI + takes it; mix bounce about 20% faster, byte-identical. + * CLI: soundcraft-cli parses arguments with clap; error lines + now start with "error: ". + * Linux: default to XWayland for file drag-and-drop on + Wayland desktops. + * Startup update prompt with one-click in-app updating. + * Re-vendored with update=true (egui 0.37, clap 4, ureq 3, + MP1/MP2 decode, craft-libs 92d392c). License audit: one new + license, CDLA-Permissive-2.0 via webpki-root-certs (Mozilla + roots for the TLS fallback); dunce takes the Apache-2.0 + option; no new copyleft in the Linux targets. No new + system deps. +- Set the fixed AppStream release date to 2026-10-28 (v0.14.0). +- Add soundcraft-no-self-update.patch (PATCH-FIX-OPENSUSE): no + startup update check, no self-update install prompt; the manual + Help check outcome window stays. +- Add soundcraft-drop-unused-egui-patches.patch: + drop unused [patch.crates-io] pins the vendor omits + +------------------------------------------------------------------- Old: ---- soundcraft-0.13.1.tar.zst New: ---- soundcraft-0.14.0.tar.zst soundcraft-drop-unused-egui-patches.patch soundcraft-no-self-update.patch ----------(New B)---------- New: Help check outcome window stays. - Add soundcraft-drop-unused-egui-patches.patch: drop unused [patch.crates-io] pins the vendor omits New:- Set the fixed AppStream release date to 2026-10-28 (v0.14.0). - Add soundcraft-no-self-update.patch (PATCH-FIX-OPENSUSE): no startup update check, no self-update install prompt; the manual ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ soundcraft.spec ++++++ --- /var/tmp/diff_new_pack.HnXSHu/_old 2026-10-30 18:20:05.195824305 +0100 +++ /var/tmp/diff_new_pack.HnXSHu/_new 2026-10-30 18:20:05.197824389 +0100 @@ -17,7 +17,7 @@ Name: soundcraft -Version: 0.13.1 +Version: 0.14.0 Release: 0 Summary: Native digital audio workstation with multitrack editing and mixing # Legal-Review-Notice: scope is the two shipped targets (soundcraft, soundcraft-cli) @@ -29,16 +29,31 @@ # Zlib foldhash; BSD-3-Clause encoding_rs. self_cell 1.3.0 declares Apache-2.0 OR # GPL-2.0-only; the build takes the Apache-2.0 option, so no GPL obligation is incurred. # docs/brand (trademarked, not open source, see NOTICE) is excluded from the tarball via -# the tar_scm exclude and is never installed. v0.6.1 adds one git dependency, -# craft-ui 0.1.0 (rev 5c874d5, MIT OR Apache-2.0), linked into the soundcraft GUI -# via soundcraft-ui-egui; cargo_vendor vendors it, so nothing is fetched at build -# time. Upstream ships no vendor/ directory, hence cargo_vendor runs with -# update=true. Vendor-tree copyleft audit is recorded in the -# .changes entry of each re-vendor. -License: Apache-2.0 AND (Apache-2.0 OR MIT) AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 AND OFL-1.1 AND Ubuntu-font-1.0 AND Unicode-3.0 AND Zlib +# the tar_scm exclude and is never installed. v0.14.0 pins four craft-libs 0.1.0 git +# dependencies (rev 92d392c, MIT OR Apache-2.0), vendored so nothing is fetched at +# build time: craft-ui (GUI, via soundcraft-ui-egui), craft-update (in-app updater, +# pulls ureq/TLS incl. CDLA-Permissive-2.0 webpki-root-certs Mozilla roots, ISC +# rustls, BSD-3-Clause subtle/verifysign), craft-docpath and craft-media. The egui +# 0.37 family and winit come from reviewed storytold forks (egui rev 6d518fc, winit +# rev a517b38, MIT OR Apache-2.0). dunce 1.0.5 declares CC0-1.0 OR MIT-0 OR +# Apache-2.0; like self_cell below, the build takes the Apache-2.0 option. Upstream +# ships no vendor/ directory, hence cargo_vendor runs with update=true. Vendor-tree +# copyleft audit is recorded in the .changes entry of each re-vendor. +License: Apache-2.0 AND (Apache-2.0 OR MIT) AND BSD-3-Clause AND CDLA-Permissive-2.0 AND ISC AND MIT AND MPL-2.0 AND OFL-1.1 AND Ubuntu-font-1.0 AND Unicode-3.0 AND Zlib URL: https://github.com/storytold/soundcraft Source0: %{name}-%{version}.tar.zst Source1: vendor.tar.zst +# PATCH-FIX-OPENSUSE soundcraft-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 self-updating intentionally). +Patch0: soundcraft-no-self-update.patch +# PATCH-FIX-OPENSUSE soundcraft-drop-unused-egui-patches.patch -- drop +# four unused [patch.crates-io] egui pins (plus their [[patch.unused]] +# lock stanzas) that cargo_vendor omits from vendor.tar.zst, breaking +# the offline resolve; downstream-only, not upstream. +Patch1: soundcraft-drop-unused-egui-patches.patch BuildRequires: appstream-glib BuildRequires: c_compiler BuildRequires: cargo >= 1.90 @@ -49,7 +64,7 @@ BuildRequires: hicolor-icon-theme BuildRequires: memory-constraints BuildRequires: pkgconfig -# cpal 0.16 links ALSA unconditionally on Linux (non-optional +# cpal 0.18 links ALSA unconditionally on Linux (non-optional # target dependency; cargo tree on the shipped targets resolves # alsa 0.9.1 + alsa-sys 0.3.1). clap-host/vst3-host only dlopen # plugins (clap-sys, libloading, no link-time system dep) and au-host @@ -90,7 +105,7 @@ Summary: Headless SoundCraft editor, converter and command server # Kept per packaging policy (declare License on every subpackage); # spec-cleaner would drop it as duplicate of the main package tag. -License: Apache-2.0 AND (Apache-2.0 OR MIT) AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 AND OFL-1.1 AND Ubuntu-font-1.0 AND Unicode-3.0 AND Zlib +License: Apache-2.0 AND (Apache-2.0 OR MIT) AND BSD-3-Clause AND CDLA-Permissive-2.0 AND ISC AND MIT AND MPL-2.0 AND OFL-1.1 AND Ubuntu-font-1.0 AND Unicode-3.0 AND Zlib %description -n soundcraft-cli Headless SoundCraft: edit sessions, convert and inspect audio, bounce mixes @@ -111,10 +126,10 @@ install -Dm0644 packaging/linux/ai.storyteller.soundcraft.desktop %{buildroot}%{_datadir}/applications/ai.storyteller.soundcraft.desktop install -Dm0644 packaging/linux/ai.storyteller.soundcraft.mime.xml %{buildroot}%{_datadir}/mime/packages/ai.storyteller.soundcraft.xml install -d -m 0755 %{buildroot}%{_datadir}/metainfo -# Fixed upstream release date (v0.13.1, 2026-10-25): 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 macro-expands # the %-sequences of any date format string, so keep this a plain string. -sed -e "s/@VERSION@/%{version}/g" -e "s/@DATE@/2026-10-25/g" packaging/linux/ai.storyteller.soundcraft.metainfo.xml.in > %{buildroot}%{_datadir}/metainfo/ai.storyteller.soundcraft.metainfo.xml +sed -e "s/@VERSION@/%{version}/g" -e "s/@DATE@/2026-10-28/g" packaging/linux/ai.storyteller.soundcraft.metainfo.xml.in > %{buildroot}%{_datadir}/metainfo/ai.storyteller.soundcraft.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.soundcraft</icon>|<icon type="cached" width="64" height="64">ai.storyteller.soundcraft.png</icon>|' %{buildroot}%{_datadir}/metainfo/ai.storyteller.soundcraft.metainfo.xml ++++++ _service ++++++ --- /var/tmp/diff_new_pack.HnXSHu/_old 2026-10-30 18:20:05.368831548 +0100 +++ /var/tmp/diff_new_pack.HnXSHu/_new 2026-10-30 18:20:05.382832134 +0100 @@ -2,7 +2,7 @@ <service mode="manual" name="tar_scm"> <param name="url">https://github.com/storytold/soundcraft.git</param> <param name="scm">git</param> - <param name="revision">v0.13.1</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> ++++++ soundcraft-0.13.1.tar.zst -> soundcraft-0.14.0.tar.zst ++++++ ++++ 71696 lines of diff (skipped) ++++++ soundcraft-drop-unused-egui-patches.patch ++++++ From: openSUSE Publishing <[email protected]> Subject: [PATCH] Drop unused egui patch pins so the offline vendor build resolves PATCH-FIX-OPENSUSE: downstream-only vendor build fix, not upstream 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 @@ -101,10 +101,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 @@ -6454,22 +6454,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" ++++++ soundcraft-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 -u -r orig/soundcraft/apps/soundcraft/src/main.rs soundcraft-0.14.0/apps/soundcraft/src/main.rs --- a/apps/soundcraft/src/main.rs 2026-10-28 16:52:03.000000000 +0100 +++ b/apps/soundcraft/src/main.rs 2026-10-29 19:32:43.659198898 +0100 @@ -252,7 +252,10 @@ let player = if no_audio { None } else { Some(soundcraft_playback::Player::with_config(Arc::new(engine.session().clone()), &prefs.audio)) }; let mut app = SoundApp::new(engine, player, services()); - 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_system_fonts(env.system_fonts()); app.autosave_dir = env.config_dir.as_ref().map(|d| d.join("Autosave")); app.leftovers = app.autosave_dir.as_deref().map(soundcraft_engine::autosave::leftovers).unwrap_or_default(); diff -u -r orig/soundcraft/crates/ui-egui/src/updates_ui.rs soundcraft-0.14.0/crates/ui-egui/src/updates_ui.rs --- a/crates/ui-egui/src/updates_ui.rs 2026-10-28 16:52:03.000000000 +0100 +++ b/crates/ui-egui/src/updates_ui.rs 2026-10-29 19:32:46.607529895 +0100 @@ -3,7 +3,7 @@ use crate::SoundApp; #[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"))] @@ -70,13 +70,10 @@ pub(crate) fn show(app: &mut SoundApp, ctx: &egui::Context) { #[cfg(not(target_arch = "wasm32"))] { - // The restart helper is scheduled before the app closes, so no update starts over unsaved work or a take being recorded. - let clean = !app.has_unsaved_changes() && !app.engine.transport.recording; - 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/soundcraft/vendor.tar.zst /work/SRC/openSUSE:Factory/.soundcraft.new.1255/vendor.tar.zst differ: char 7, line 1
