Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package deckcraft for openSUSE:Factory 
checked in at 2026-10-30 18:11:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/deckcraft (Old)
 and      /work/SRC/openSUSE:Factory/.deckcraft.new.1255 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "deckcraft"

Fri Oct 30 18:11:50 2026 rev:2 rq:1393736 version:0.12.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/deckcraft/deckcraft.changes      2026-10-28 
21:11:04.116404345 +0100
+++ /work/SRC/openSUSE:Factory/.deckcraft.new.1255/deckcraft.changes    
2026-10-30 18:19:09.687500618 +0100
@@ -1,0 +2,29 @@
+Thu Oct 29 12:40:28 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 0.12.0 (upstream tag v0.12.0, 2026-10-28):
+  * Startup update prompt with direct self-updating; new
+    craft-update/craft-ui/craft-i18n helpers from craft-libs
+  * UI toolkit egui 0.36 -> 0.37; every dropdown uses the
+    shared ComboBox; proofing language for the whole deck
+  * Fixes for HTML paste panics, picture/object preview
+    fills, trendline sums, table command errors, layout
+    index validation and PPTX import/export details
+  * Hardening (no CVE assigned): media decoders bounded
+    against resource amplification and unbound state
+  * Largely refactoring, installer and CI work otherwise;
+    no install layout change
+  * Re-vendor (update=true): new crates (ureq/rustls stack,
+    zip 9, time, tar, postcard, quick-xml 0.42, icu 2.3)
+    all under already-listed licences; webpki-root-certs
+    is dev/wasm-only and not linked; licence set and
+    Legal-Review-Notice unchanged; cargo_audit reports no
+    advisories.
+- Set the fixed metainfo release date to 2026-10-28 (v0.12.0).
+- Disable in-app self-update (PATCH-FIX-OPENSUSE
+  deckcraft-no-self-update.patch): no startup update check and no
+  install prompt, so upstream releases are never installed over
+  RPM-owned files; the manual Help check outcome toast stays.
+- Add deckcraft-drop-unused-egui-patches.patch:
+  drop unused [patch.crates-io] pins the vendor omits
+
+-------------------------------------------------------------------

Old:
----
  deckcraft-0.11.1.tar.zst

New:
----
  deckcraft-0.12.0.tar.zst
  deckcraft-drop-unused-egui-patches.patch
  deckcraft-no-self-update.patch

----------(New B)----------
  New:  RPM-owned files; the manual Help check outcome toast stays.
- Add deckcraft-drop-unused-egui-patches.patch:
  drop unused [patch.crates-io] pins the vendor omits
  New:- Disable in-app self-update (PATCH-FIX-OPENSUSE
  deckcraft-no-self-update.patch): no startup update check and no
  install prompt, so upstream releases are never installed over
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ deckcraft.spec ++++++
--- /var/tmp/diff_new_pack.uDFgDY/_old  2026-10-30 18:19:18.213857548 +0100
+++ /var/tmp/diff_new_pack.uDFgDY/_new  2026-10-30 18:19:18.218857757 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           deckcraft
-Version:        0.11.1
+Version:        0.12.0
 Release:        0
 Summary:        Native presentation app with slides, shows and an agent API
 # Legal-Review-Notice: scope is the two shipped targets (deckcraft, 
deckcraft-cli)
@@ -41,6 +41,18 @@
 URL:            https://github.com/storytold/deckcraft
 Source0:        %{name}-%{version}.tar.zst
 Source1:        vendor.tar.zst
+# PATCH-FIX-OPENSUSE deckcraft-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 toast stays. New upstream behaviour in 0.12.0, not
+# upstreamable (upstream ships self-updating intentionally).
+Patch0:         deckcraft-no-self-update.patch
+# PATCH-FIX-OPENSUSE deckcraft-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:         deckcraft-drop-unused-egui-patches.patch
 BuildRequires:  appstream-glib
 BuildRequires:  c_compiler
 BuildRequires:  cargo >= 1.95
@@ -100,6 +112,12 @@
 # workspace also builds deckcraft-web, which is not shipped). CRAFT_FONTS_DIR
 # stays unset: the fonts build step then embeds nothing and falls back to
 # system fonts.
+# NOTE: keep the parameterized cargo build and test macros below in braced
+# form. The bare form misparses the trailing package arguments in the
+# Factory build root (staging adi:5: Unknown option in the build macro at
+# the build section call), while the braced form with identical arguments
+# builds green; spec-cleaner 1.3.1 rewrites them back to bare, recorded as
+# a cleaner deviation at gate time.
 %{cargo_build} --locked -p deckcraft -p deckcraft-cli
 
 %install
@@ -108,10 +126,10 @@
 install -Dm0644 packaging/linux/ai.storyteller.deckcraft.desktop 
%{buildroot}%{_datadir}/applications/ai.storyteller.deckcraft.desktop
 install -Dm0644 packaging/linux/ai.storyteller.deckcraft.mime.xml 
%{buildroot}%{_datadir}/mime/packages/ai.storyteller.deckcraft.xml
 install -d -m 0755 %{buildroot}%{_datadir}/metainfo
-# Fixed upstream release date (v0.11.1, 2026-10-25): a build-time date would
+# Fixed upstream release date (v0.12.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.deckcraft.metainfo.xml.in > 
%{buildroot}%{_datadir}/metainfo/ai.storyteller.deckcraft.metainfo.xml
+sed -e "s/@VERSION@/%{version}/g" -e "s/@DATE@/2026-10-28/g" 
packaging/linux/ai.storyteller.deckcraft.metainfo.xml.in > 
%{buildroot}%{_datadir}/metainfo/ai.storyteller.deckcraft.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.deckcraft</icon>|<icon 
type="cached" width="64" height="64">ai.storyteller.deckcraft.png</icon>|' 
%{buildroot}%{_datadir}/metainfo/ai.storyteller.deckcraft.metainfo.xml
@@ -121,6 +139,7 @@
 %check
 # Media codec unit tests (committed fixtures only, no network) covering the
 # in-house H.264/HEVC/VP9/AV1 decoders and the symphonia audio path.
+# (Braced form per the NOTE at the build section call above.)
 %{cargo_test} --locked -p deckcraft-media
 # Both binaries exit before any window or GPU init on --version.
 %{buildroot}%{_bindir}/deckcraft --version

++++++ _service ++++++
--- /var/tmp/diff_new_pack.uDFgDY/_old  2026-10-30 18:19:18.362863785 +0100
+++ /var/tmp/diff_new_pack.uDFgDY/_new  2026-10-30 18:19:18.371864162 +0100
@@ -2,7 +2,7 @@
   <service mode="manual" name="tar_scm">
     <param name="url">https://github.com/storytold/deckcraft.git</param>
     <param name="scm">git</param>
-    <param name="revision">v0.11.1</param>
+    <param name="revision">v0.12.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="versionrewrite-replacement">\1</param>
@@ -15,7 +15,8 @@
   <service mode="manual" name="set_version"/>
   <service mode="manual" name="cargo_vendor">
     <param name="src">deckcraft-*.tar.zst</param>
-    <param name="update">true</param>
+    <param name="update">false</param>
+    <param name="respect-lockfile">true</param>
   </service>
   <service mode="manual" name="cargo_audit"/>
 </services>

++++++ deckcraft-0.11.1.tar.zst -> deckcraft-0.12.0.tar.zst ++++++
++++ 136137 lines of diff (skipped)

++++++ deckcraft-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
@@ -117,10 +117,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
@@ -6505,22 +6505,3 @@
  "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";

++++++ deckcraft-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 toast; only the automatic startup
check and the self-update install prompt are turned off.

--- a/apps/deckcraft/src/main.rs
+++ b/apps/deckcraft/src/main.rs
@@ -268,7 +268,11 @@
             deckcraft_ui_egui::install_ime_pass_hooks(&cc.egui_ctx);
             let mut app = SlideApp::new(Session::new(), services());
             load_prefs(&mut app);
-            app.enable_update_checks();
+            // 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 (enable_update_checks() left
+            // uncalled, keeping the updater disabled). Manual Help ▸ Check
+            // stays.
             // AutoRecover: reopen what a previous run left unsaved, then keep 
it current.
             if std::env::var_os("DECKCRAFT_NO_RECOVERY").is_none() {
                 app.session.recovery_dir = 
deckcraft_engine::recovery::default_dir();
--- a/crates/ui-egui/src/dialogs/updates_ui.rs
+++ b/crates/ui-egui/src/dialogs/updates_ui.rs
@@ -1,7 +1,7 @@
 //! One background check at start-up (and on demand from Help) for a newer 
release, and the modal
 //! prompt that offers to update and restart. The flow itself is 
`craft_update::updater::Updater`.
 
-use craft_update::updater::{Action, Status, Updater};
+use craft_update::updater::{Status, Updater};
 
 use crate::SlideApp;
 
@@ -51,15 +51,11 @@
     }
 }
 
-pub(crate) fn show(app: &mut SlideApp, ctx: &egui::Context) {
-    // The restart helper is scheduled before the app closes, so no update 
starts over unsaved work.
-    let clean = !app.session.documents().iter().any(|d| d.is_dirty());
-    match app.updates_rt.updater.show_if(ctx, clean) {
-        Action::OpenUrl(url) => ctx.open_url(egui::OpenUrl::new_tab(url)),
-        // The app's close path asks about unsaved work; the restart helper 
relaunches once the process exits.
-        Action::Close => ctx.send_viewport_cmd(egui::ViewportCommand::Close),
-        Action::None => {}
-    }
+pub(crate) fn show(_app: &mut SlideApp, _ctx: &egui::Context) {
+    // 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 Help ▸ Check for
+    // Updates outcome (tick() toast) stays.
 }
 
 #[cfg(test)]
@@ -67,12 +63,13 @@
     use super::*;
 
     #[test]
-    fn an_offered_release_opens_the_prompt() {
+    fn an_offered_release_never_opens_the_prompt() {
+        // Downstream (openSUSE): the self-update prompt is neutered.
         let mut app = SlideApp::new(deckcraft_engine::Session::new(), 
crate::Services::default());
         let ctx = egui::Context::default();
         assert!(!app.updates_rt.updater.prompt_open());
         app.updates_rt.updater.offer(craft_update::Release { tag: 
"v99.0.0".into(), ..Default::default() });
         ctx.run_ui(egui::RawInput::default(), |ui| show(&mut app, 
ui.ctx())).textures_delta.clear();
-        assert!(app.updates_rt.updater.prompt_open());
+        assert!(!app.updates_rt.updater.prompt_open());
     }
 }

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/deckcraft/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.deckcraft.new.1255/vendor.tar.zst differ: char 8, 
line 1

Reply via email to