Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package impression for openSUSE:Factory 
checked in at 2026-01-27 16:07:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/impression (Old)
 and      /work/SRC/openSUSE:Factory/.impression.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "impression"

Tue Jan 27 16:07:30 2026 rev:10 rq:1329167 version:3.6.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/impression/impression.changes    2026-01-06 
17:44:00.912223518 +0100
+++ /work/SRC/openSUSE:Factory/.impression.new.1928/impression.changes  
2026-01-27 16:08:05.475480835 +0100
@@ -1,0 +2,8 @@
+Wed Jan 21 00:46:43 UTC 2026 - Richard Rahl <[email protected]>
+
+- Update to version 3.6.0:
+  + Impression will now ask you where to save downloaded images
+    instead of saving them to a temporary location
+
+
+-------------------------------------------------------------------

Old:
----
  impression-3.5.6.obscpio

New:
----
  impression-3.6.0.obscpio

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

Other differences:
------------------
++++++ impression.spec ++++++
--- /var/tmp/diff_new_pack.nZzDxB/_old  2026-01-27 16:08:07.027546295 +0100
+++ /var/tmp/diff_new_pack.nZzDxB/_new  2026-01-27 16:08:07.031546464 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package impression
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %define         appname io.gitlab.adhami3310.Impression
 Name:           impression
-Version:        3.5.6
+Version:        3.6.0
 Release:        0
 Summary:        A straight-forward and modern application to create bootable 
drives
 License:        GPL-3.0-only

++++++ _service ++++++
--- /var/tmp/diff_new_pack.nZzDxB/_old  2026-01-27 16:08:07.067547982 +0100
+++ /var/tmp/diff_new_pack.nZzDxB/_new  2026-01-27 16:08:07.075548319 +0100
@@ -3,7 +3,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://gitlab.com/adhami3310/impression.git</param>
-    <param name="revision">refs/tags/v3.5.6</param>
+    <param name="revision">refs/tags/v3.6.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">disable</param>

++++++ impression-3.5.6.obscpio -> impression-3.6.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/impression-3.5.6/Cargo.lock 
new/impression-3.6.0/Cargo.lock
--- old/impression-3.5.6/Cargo.lock     2025-12-30 03:47:13.000000000 +0100
+++ new/impression-3.6.0/Cargo.lock     2026-01-12 06:49:11.000000000 +0100
@@ -22,9 +22,9 @@
 
 [[package]]
 name = "ashpd"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "da0986d5b4f0802160191ad75f8d33ada000558757db3defb70299ca95d9fcbd"
+checksum = "618a409b91d5265798a99e3d1d0b226911605e581c4e7255e83c1e397b172bce"
 dependencies = [
  "enumflags2",
  "futures-channel",
@@ -130,7 +130,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -165,7 +165,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -248,9 +248,9 @@
 
 [[package]]
 name = "cc"
-version = "1.2.51"
+version = "1.2.52"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203"
+checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3"
 dependencies = [
  "find-msvc-tools",
  "shlex",
@@ -273,12 +273,6 @@
 checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
 
 [[package]]
-name = "cfg_aliases"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
-
-[[package]]
 name = "chrono"
 version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -360,7 +354,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -370,15 +364,6 @@
 checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
 
 [[package]]
-name = "encoding_rs"
-version = "0.8.35"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
 name = "endi"
 version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -402,7 +387,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -460,9 +445,9 @@
 
 [[package]]
 name = "find-msvc-tools"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff"
+checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41"
 
 [[package]]
 name = "fnv"
@@ -563,7 +548,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -655,9 +640,9 @@
 
 [[package]]
 name = "getrandom"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
+checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
 dependencies = [
  "cfg-if",
  "libc",
@@ -757,7 +742,7 @@
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -865,7 +850,7 @@
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -889,9 +874,9 @@
 
 [[package]]
 name = "h2"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386"
+checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54"
 dependencies = [
  "atomic-waker",
  "bytes",
@@ -1177,7 +1162,7 @@
 
 [[package]]
 name = "impression"
-version = "3.5.6"
+version = "3.6.0"
 dependencies = [
  "ashpd",
  "chrono",
@@ -1199,13 +1184,14 @@
  "tokio",
  "tracing-subscriber",
  "udisks2",
+ "url",
 ]
 
 [[package]]
 name = "indexmap"
-version = "2.12.1"
+version = "2.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2"
+checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -1291,9 +1277,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.178"
+version = "0.2.180"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
+checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
 
 [[package]]
 name = "linux-raw-sys"
@@ -1351,12 +1337,6 @@
 ]
 
 [[package]]
-name = "mime"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-
-[[package]]
 name = "mio"
 version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -1385,19 +1365,6 @@
 ]
 
 [[package]]
-name = "nix"
-version = "0.30.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
-dependencies = [
- "bitflags",
- "cfg-if",
- "cfg_aliases",
- "libc",
- "memoffset",
-]
-
-[[package]]
 name = "nu-ansi-term"
 version = "0.50.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -1473,7 +1440,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -1612,18 +1579,18 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.104"
+version = "1.0.105"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "9695f8df41bb4f3d222c95a67532365f569318332d03d5f3f67f37b20e6ebdf0"
+checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.42"
+version = "1.0.43"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
+checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
 dependencies = [
  "proc-macro2",
 ]
@@ -1714,13 +1681,12 @@
 
 [[package]]
 name = "reqwest"
-version = "0.12.28"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
+checksum = "04e9018c9d814e5f30cc16a0f03271aeab3571e609612d9fe78c1aa8d11c2f62"
 dependencies = [
  "base64",
  "bytes",
- "encoding_rs",
  "futures-core",
  "futures-util",
  "h2",
@@ -1733,14 +1699,12 @@
  "hyper-util",
  "js-sys",
  "log",
- "mime",
  "native-tls",
  "percent-encoding",
  "pin-project-lite",
  "rustls-pki-types",
  "serde",
  "serde_json",
- "serde_urlencoded",
  "sync_wrapper",
  "tokio",
  "tokio-native-tls",
@@ -1763,7 +1727,7 @@
 dependencies = [
  "cc",
  "cfg-if",
- "getrandom 0.2.16",
+ "getrandom 0.2.17",
  "libc",
  "untrusted",
  "windows-sys 0.52.0",
@@ -1802,9 +1766,9 @@
 
 [[package]]
 name = "rustls"
-version = "0.23.35"
+version = "0.23.36"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f"
+checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b"
 dependencies = [
  "once_cell",
  "rustls-pki-types",
@@ -1840,12 +1804,6 @@
 checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
 
 [[package]]
-name = "ryu"
-version = "1.0.22"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984"
-
-[[package]]
 name = "schannel"
 version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -1910,14 +1868,14 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.148"
+version = "1.0.149"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da"
+checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
 dependencies = [
  "itoa",
  "memchr",
@@ -1934,7 +1892,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -1947,18 +1905,6 @@
 ]
 
 [[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-dependencies = [
- "form_urlencoded",
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
 name = "sharded-slab"
 version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -2012,12 +1958,6 @@
 checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
 
 [[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-
-[[package]]
 name = "subtle"
 version = "2.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -2036,9 +1976,9 @@
 
 [[package]]
 name = "syn"
-version = "2.0.111"
+version = "2.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
+checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2062,7 +2002,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2147,7 +2087,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2171,9 +2111,9 @@
 
 [[package]]
 name = "tokio"
-version = "1.48.0"
+version = "1.49.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
+checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86"
 dependencies = [
  "bytes",
  "libc",
@@ -2207,9 +2147,9 @@
 
 [[package]]
 name = "tokio-util"
-version = "0.7.17"
+version = "0.7.18"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594"
+checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
 dependencies = [
  "bytes",
  "futures-core",
@@ -2220,9 +2160,9 @@
 
 [[package]]
 name = "toml"
-version = "0.9.10+spec-1.1.0"
+version = "0.9.11+spec-1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48"
+checksum = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46"
 dependencies = [
  "indexmap",
  "serde_core",
@@ -2333,7 +2273,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2415,14 +2355,15 @@
 
 [[package]]
 name = "url"
-version = "2.5.7"
+version = "2.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
+checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
 dependencies = [
  "form_urlencoded",
  "idna",
  "percent-encoding",
  "serde",
+ "serde_derive",
 ]
 
 [[package]]
@@ -2529,7 +2470,7 @@
  "bumpalo",
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
  "wasm-bindgen-shared",
 ]
 
@@ -2608,7 +2549,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2619,7 +2560,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2853,15 +2794,15 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
  "synstructure",
 ]
 
 [[package]]
 name = "zbus"
-version = "5.12.0"
+version = "5.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b622b18155f7a93d1cd2dc8c01d2d6a44e08fb9ebb7b3f9e6ed101488bad6c91"
+checksum = "17f79257df967b6779afa536788657777a0001f5b42524fcaf5038d4344df40b"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -2877,8 +2818,9 @@
  "futures-core",
  "futures-lite",
  "hex",
- "nix",
+ "libc",
  "ordered-stream",
+ "rustix",
  "serde",
  "serde_repr",
  "tokio",
@@ -2894,14 +2836,14 @@
 
 [[package]]
 name = "zbus_macros"
-version = "5.12.0"
+version = "5.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1cdb94821ca8a87ca9c298b5d1cbd80e2a8b67115d99f6e4551ac49e42b6a314"
+checksum = "aad23e2d2f91cae771c7af7a630a49e755f1eb74f8a46e9f6d5f7a146edf5a37"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
  "zbus_names",
  "zvariant",
  "zvariant_utils",
@@ -2909,34 +2851,33 @@
 
 [[package]]
 name = "zbus_names"
-version = "4.2.0"
+version = "4.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97"
+checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f"
 dependencies = [
  "serde",
- "static_assertions",
  "winnow",
  "zvariant",
 ]
 
 [[package]]
 name = "zerocopy"
-version = "0.8.31"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3"
+checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.8.31"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a"
+checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
@@ -2956,7 +2897,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
  "synstructure",
 ]
 
@@ -2996,20 +2937,20 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
 ]
 
 [[package]]
 name = "zmij"
-version = "1.0.3"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e9747e91771f56fd7893e1164abd78febd14a670ceec257caad15e051de35f06"
+checksum = "ac93432f5b761b22864c774aac244fa5c0fd877678a4c37ebf6cf42208f9c9ec"
 
 [[package]]
 name = "zvariant"
-version = "5.8.0"
+version = "5.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2be61892e4f2b1772727be11630a62664a1826b62efa43a6fe7449521cb8744c"
+checksum = "326aaed414f04fe839777b4c443d4e94c74e7b3621093bd9c5e649ac8aa96543"
 dependencies = [
  "endi",
  "enumflags2",
@@ -3022,26 +2963,26 @@
 
 [[package]]
 name = "zvariant_derive"
-version = "5.8.0"
+version = "5.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "da58575a1b2b20766513b1ec59d8e2e68db2745379f961f86650655e862d2006"
+checksum = "ba44e1f8f4da9e6e2d25d2a60b116ef8b9d0be174a7685e55bb12a99866279a7"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.111",
+ "syn 2.0.114",
  "zvariant_utils",
 ]
 
 [[package]]
 name = "zvariant_utils"
-version = "3.2.1"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599"
+checksum = "f75c23a64ef8f40f13a6989991e643554d9bef1d682a281160cf0c1bc389c5e9"
 dependencies = [
  "proc-macro2",
  "quote",
  "serde",
- "syn 2.0.111",
+ "syn 2.0.114",
  "winnow",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/impression-3.5.6/Cargo.toml 
new/impression-3.6.0/Cargo.toml
--- old/impression-3.5.6/Cargo.toml     2025-12-30 03:47:13.000000000 +0100
+++ new/impression-3.6.0/Cargo.toml     2026-01-12 06:49:11.000000000 +0100
@@ -1,6 +1,6 @@
 [package]
 name = "impression"
-version = "3.5.6"
+version = "3.6.0"
 edition = "2024"
 rust-version = "1.88"
 
@@ -22,14 +22,21 @@
 ashpd = "0.12"
 udisks = { package = "udisks2", version = "0.3.1" }
 libc = "0.2"
-reqwest = { version = "0.12", features = ["stream", "json"] }
+reqwest = { version = "0.13", default-features = false, features = [
+    "native-tls",
+    "http2",
+    "system-proxy",
+    "stream",
+    "json",
+] }
 roxmltree = "0.21"
 chrono = "0.4"
 thiserror = "2.0"
 derivative = "2.2"
-tokio = { version = "1.48", features = ["process", "rt-multi-thread"] }
+tokio = { version = "1.49", features = ["process", "rt-multi-thread"] }
 serde_json = "1.0"
 rayon = "1.11"
 futures = "0.3"
 tracing-subscriber = "0.3"
 terrors = "0.3"
+url = "2.5.8"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/impression-3.5.6/data/io.gitlab.adhami3310.Impression.metainfo.xml.in.in 
new/impression-3.6.0/data/io.gitlab.adhami3310.Impression.metainfo.xml.in.in
--- 
old/impression-3.5.6/data/io.gitlab.adhami3310.Impression.metainfo.xml.in.in    
    2025-12-30 03:47:13.000000000 +0100
+++ 
new/impression-3.6.0/data/io.gitlab.adhami3310.Impression.metainfo.xml.in.in    
    2026-01-12 06:49:11.000000000 +0100
@@ -75,6 +75,14 @@
   <content_rating type="oars-1.1" />
 
   <releases>
+    <release version="3.6.0" date="2026-01-11">
+      <description translate="no">
+        <ul>
+          <li>Impression will now ask you where to save downloaded images 
instead of saving them to
+            a temporary location.</li>
+        </ul>
+      </description>
+    </release>
     <release version="3.5.6" date="2025-12-29">
       <description translate="no">
         <ul>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/impression-3.5.6/meson.build 
new/impression-3.6.0/meson.build
--- old/impression-3.5.6/meson.build    2025-12-30 03:47:13.000000000 +0100
+++ new/impression-3.6.0/meson.build    2026-01-12 06:49:11.000000000 +0100
@@ -1,6 +1,6 @@
 project('impression',
   'rust',
-  version: '3.5.6',
+  version: '3.6.0',
   meson_version: '>= 0.59.0',
   license: 'GPLv3',
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/impression-3.5.6/po/impression.pot 
new/impression-3.6.0/po/impression.pot
--- old/impression-3.5.6/po/impression.pot      2025-12-30 03:47:13.000000000 
+0100
+++ new/impression-3.6.0/po/impression.pot      2026-01-12 06:49:11.000000000 
+0100
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: impression\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-12-29 18:46-0800\n"
+"POT-Creation-Date: 2026-01-11 21:48-0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
@@ -21,7 +21,7 @@
 #: data/io.gitlab.adhami3310.Impression.metainfo.xml.in.in:5
 #: data/resources/blueprints/window.blp:9
 #: data/resources/blueprints/window.blp:20
-#: data/resources/blueprints/window.blp:166 src/main.rs:46 src/window.rs:934
+#: data/resources/blueprints/window.blp:166 src/main.rs:46 src/window.rs:986
 msgid "Impression"
 msgstr ""
 
@@ -149,15 +149,15 @@
 msgid "Retry"
 msgstr ""
 
-#: data/resources/blueprints/window.blp:383 src/window.rs:373 src/window.rs:446
+#: data/resources/blueprints/window.blp:383 src/window.rs:369 src/window.rs:442
 msgid "Writing"
 msgstr ""
 
-#: data/resources/blueprints/window.blp:385 src/window.rs:372
+#: data/resources/blueprints/window.blp:385 src/window.rs:368
 msgid "Do not remove the drive"
 msgstr ""
 
-#: data/resources/blueprints/window.blp:400 src/window.rs:266 src/window.rs:317
+#: data/resources/blueprints/window.blp:400 src/window.rs:265 src/window.rs:316
 msgid "_Cancel"
 msgstr ""
 
@@ -189,83 +189,83 @@
 msgid "About Impression"
 msgstr ""
 
-#: src/window.rs:261
+#: src/window.rs:260
 msgid "Stop Writing?"
 msgstr ""
 
-#: src/window.rs:262
+#: src/window.rs:261
 msgid "This might leave the drive in a faulty state"
 msgstr ""
 
-#: src/window.rs:267
+#: src/window.rs:266
 msgid "_Stop Writing"
 msgstr ""
 
-#: src/window.rs:310
+#: src/window.rs:309
 msgid "Erase Drive?"
 msgstr ""
 
-#: src/window.rs:312
+#: src/window.rs:311
 #, rust-format
 msgid "You will lose all data stored on {}"
 msgstr ""
 
-#: src/window.rs:318
+#: src/window.rs:317
 msgid "_Erase"
 msgstr ""
 
-#: src/window.rs:367 src/window.rs:439
+#: src/window.rs:363 src/window.rs:435
 msgid "Writing will begin once the download is completed"
 msgstr ""
 
-#: src/window.rs:369 src/window.rs:441
+#: src/window.rs:365 src/window.rs:437
 msgid "Downloading Image"
 msgstr ""
 
-#: src/window.rs:414
+#: src/window.rs:410
 msgid "Failed to write image"
 msgstr ""
 
-#: src/window.rs:421
+#: src/window.rs:417
 msgid "Image Written"
 msgstr ""
 
-#: src/window.rs:445
+#: src/window.rs:441
 msgid "This could take a while"
 msgstr ""
 
-#: src/window.rs:701
+#: src/window.rs:688 src/window.rs:744
 msgid "Disk Images"
 msgstr ""
 
-#: src/window.rs:736
+#: src/window.rs:788
 msgid "File is not a Disk Image"
 msgstr ""
 
-#: src/window.rs:862
+#: src/window.rs:914
 msgid "translator-credits"
 msgstr ""
 
-#: src/window.rs:864
+#: src/window.rs:916
 msgid "Code borrowed from"
 msgstr ""
 
 #. Translators: Metainfo for the app Footage. 
<https://gitlab.com/adhami3310/Footage>
-#: src/window.rs:871
+#: src/window.rs:923
 msgid "Footage"
 msgstr ""
 
 #. Translators: Metainfo for the app Footage. 
<https://gitlab.com/adhami3310/Footage>
-#: src/window.rs:873
+#: src/window.rs:925
 msgid "Polish your videos"
 msgstr ""
 
 #. Translators: Metainfo for the app Switcheroo. 
<https://gitlab.com/adhami3310/Switcheroo>
-#: src/window.rs:879
+#: src/window.rs:931
 msgid "Switcheroo"
 msgstr ""
 
 #. Translators: Metainfo for the app Switcheroo. 
<https://gitlab.com/adhami3310/Switcheroo>
-#: src/window.rs:881
+#: src/window.rs:933
 msgid "Convert and manipulate images"
 msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/impression-3.5.6/src/application.rs 
new/impression-3.6.0/src/application.rs
--- old/impression-3.5.6/src/application.rs     2025-12-30 03:47:13.000000000 
+0100
+++ new/impression-3.6.0/src/application.rs     2026-01-12 06:49:11.000000000 
+0100
@@ -1,10 +1,9 @@
 use glib::{ExitCode, clone};
-use log::{debug, error, info};
+use log::{debug, info};
 
 use gtk::{gio, glib, prelude::*, subclass::prelude::*};
 
 use crate::config::{APP_ID, PKGDATADIR, PROFILE, VERSION};
-use crate::runtime;
 use crate::window::ImpressionAppWindow;
 
 mod imp {
@@ -100,17 +99,6 @@
         info!("Version: {VERSION} ({PROFILE})");
         info!("Datadir: {PKGDATADIR}");
 
-        runtime().spawn(async {
-            if !ashpd::is_sandboxed().await {
-                debug!("Not running in a sandbox, skipping cache cleanup.");
-                return;
-            }
-            info!("Running in a sandbox, cleaning cache directory.");
-            if let Err(e) = clear_cache() {
-                error!("Failed to clean cache directory: {e}");
-            }
-        });
-
         ApplicationExtManual::run(self)
     }
 }
@@ -124,16 +112,3 @@
             .build()
     }
 }
-
-fn clear_cache() -> std::io::Result<()> {
-    for entry in std::fs::read_dir(glib::user_cache_dir())? {
-        let entry = entry?;
-        if entry.file_type()?.is_file() && matches!(entry.path().extension(), 
Some(x) if x == "iso")
-        {
-            info!("deleting {}", entry.path().display());
-            std::fs::remove_file(entry.path())?;
-        }
-    }
-
-    Ok(())
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/impression-3.5.6/src/flash.rs 
new/impression-3.6.0/src/flash.rs
--- old/impression-3.5.6/src/flash.rs   2025-12-30 03:47:13.000000000 +0100
+++ new/impression-3.6.0/src/flash.rs   2026-01-12 06:49:11.000000000 +0100
@@ -84,8 +84,8 @@
 
     async fn download_file(
         &self,
-        downloading_path: std::path::PathBuf,
-        url: &str,
+        downloading_path: &std::path::PathBuf,
+        url: &url::Url,
     ) -> Result<
         File,
         OneOf<(
@@ -95,11 +95,9 @@
             reqwest::Error,
         )>,
     > {
-        let mut file = File::create(downloading_path.clone())
-            .await
-            .map_err(OneOf::new)?;
+        let mut file = 
File::create(downloading_path).await.map_err(OneOf::new)?;
 
-        let res = reqwest::get(url).await.map_err(OneOf::new)?;
+        let res = reqwest::get(url.to_owned()).await.map_err(OneOf::new)?;
 
         let total_size = res
             .content_length()
@@ -227,18 +225,12 @@
                         .map_err(OneOf::broaden)?)
                 }
             },
-            DiskImage::Online { url, name } => {
-                let temp_dir = glib::user_cache_dir();
-
-                std::fs::create_dir_all(&temp_dir).map_err(OneOf::new)?;
-
-                let temporary_download_path = temp_dir.join(name.to_owned() + 
".iso");
-
-                Ok(self
-                    .download_file(temporary_download_path, url)
-                    .await
-                    .map_err(OneOf::broaden)?)
-            }
+            DiskImage::Online {
+                url, download_path, ..
+            } => Ok(self
+                .download_file(download_path, url)
+                .await
+                .map_err(OneOf::broaden)?),
         }
     }
 
@@ -299,11 +291,15 @@
 
         let destination_file = 
udisks_open(&destination_block).await.map_err(OneOf::new)?;
 
+        info!("Destination: {destination_file:?}");
+
         let source_image = self
             .get_source_file_from_image()
             .await
             .map_err(OneOf::broaden)?;
 
+        info!("Source: {source_image:?}");
+
         self.stopped_running().map_err(OneOf::broaden)?;
 
         //TODO: we should probably spawn a UDIsks.Job for this operation,
@@ -325,6 +321,8 @@
             error!("Error ejecting drive, will be ignored: {e}");
         }
 
+        info!("Flashing completed successfully");
+
         Ok(())
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/impression-3.5.6/src/online.rs 
new/impression-3.6.0/src/online.rs
--- old/impression-3.5.6/src/online.rs  2025-12-30 03:47:13.000000000 +0100
+++ new/impression-3.6.0/src/online.rs  2026-01-12 06:49:11.000000000 +0100
@@ -3,11 +3,11 @@
 use itertools::Itertools;
 use log::warn;
 
-#[derive(Debug, PartialEq, PartialOrd, Eq, Ord)]
+#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord)]
 pub struct DistroRelease {
     pub name: String,
     pub version: Option<String>,
-    pub url: String,
+    pub url: url::Url,
     pub variant: Option<String>,
 }
 
@@ -73,7 +73,7 @@
 struct MediaInfo {
     variant_name: String,
     architecture: String,
-    url: String,
+    url: url::Url,
 }
 
 fn get_media_info(
@@ -82,6 +82,7 @@
     default_name: &str,
 ) -> Option<MediaInfo> {
     let url = get_text_of_first_child_node_with_tag(media_node, 
"url")?.to_owned();
+    let parsed_url = url::Url::parse(&url).ok()?;
 
     let architecture = media_node.attribute("arch")?.to_owned();
 
@@ -93,7 +94,7 @@
     Some(MediaInfo {
         variant_name: variant_name.to_owned(),
         architecture,
-        url,
+        url: parsed_url,
     })
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/impression-3.5.6/src/widgets/device_list.rs 
new/impression-3.6.0/src/widgets/device_list.rs
--- old/impression-3.5.6/src/widgets/device_list.rs     2025-12-30 
03:47:13.000000000 +0100
+++ new/impression-3.6.0/src/widgets/device_list.rs     2026-01-12 
06:49:11.000000000 +0100
@@ -1,7 +1,6 @@
 use std::ffi::CString;
 
 use adw::prelude::*;
-use glib::clone;
 
 use crate::window::ImpressionAppWindow;
 
@@ -87,7 +86,7 @@
 
         let object_path = device.object.object_path().to_string();
         if devices.len() == 1 {
-            check_button.connect_toggled(clone!(
+            check_button.connect_toggled(glib::clone!(
                 #[weak(rename_to=this)]
                 app,
                 move |x| {
@@ -96,7 +95,7 @@
                 }
             ));
         } else {
-            check_button.connect_toggled(clone!(
+            check_button.connect_toggled(glib::clone!(
                 #[weak(rename_to=this)]
                 app,
                 move |x| {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/impression-3.5.6/src/window.rs 
new/impression-3.6.0/src/window.rs
--- old/impression-3.5.6/src/window.rs  2025-12-30 03:47:13.000000000 +0100
+++ new/impression-3.6.0/src/window.rs  2026-01-12 06:49:11.000000000 +0100
@@ -29,7 +29,8 @@
         compression: Compression,
     },
     Online {
-        url: String,
+        url: url::Url,
+        download_path: PathBuf,
         name: String,
     },
 }
@@ -176,15 +177,15 @@
 #[gtk::template_callbacks]
 impl ImpressionAppWindow {
     pub fn new<P: glib::prelude::IsA<gtk::Application>>(app: &P) -> Self {
-        let win = glib::Object::builder::<ImpressionAppWindow>()
+        let window = glib::Object::builder::<ImpressionAppWindow>()
             .property("application", app)
             .build();
 
-        win.setup_callbacks();
-        win.setup_drop_target();
-        win.imp().open_image_button.grab_focus();
+        window.setup_callbacks();
+        window.setup_drop_target();
+        window.imp().open_image_button.grab_focus();
 
-        win
+        window
     }
 
     fn setup_gactions(&self) {
@@ -221,9 +222,7 @@
                     #[weak(rename_to=window)]
                     self,
                     move |_, _, _| {
-                        glib::spawn_future_local(async move {
-                            window.open_dialog().await;
-                        });
+                        window.open_dialog();
                     }
                 ))
                 .build(),
@@ -238,14 +237,14 @@
             .build();
 
         drop_target.connect_drop(clone!(
-            #[weak(rename_to=win)]
+            #[weak(rename_to=window)]
             self,
             #[upgrade_or_default]
             move |_, value, _, _| {
                 if let Ok(file_list) = value.get::<gdk::FileList>()
                     && let Some(input_file) = file_list.files().first()
                 {
-                    win.open_file(input_file);
+                    window.open_file(input_file);
                     return true;
                 }
 
@@ -344,7 +343,7 @@
         let current_status = 
std::sync::Arc::<std::sync::Mutex<FlashStatus>>::new(
             std::sync::Mutex::new(FlashStatus::Active(
                 match disk_image_for_reading {
-                    DiskImage::Online { url: _, name: _ } => 
FlashPhase::Download,
+                    DiskImage::Online { .. } => FlashPhase::Download,
                     DiskImage::Local { .. } => FlashPhase::Copy,
                 },
                 Progress::Fraction(0.0),
@@ -359,10 +358,7 @@
         );
 
         let flashing_page = &self.imp().flashing_page;
-        if matches!(
-            disk_image_for_reading,
-            DiskImage::Online { url: _, name: _ }
-        ) {
+        if matches!(disk_image_for_reading, DiskImage::Online { .. }) {
             flashing_page.set_description(Some(&gettext(
                 "Writing will begin once the download is completed",
             )));
@@ -658,14 +654,11 @@
 
     fn load_distros(&self, target: &TemplateChild<gtk::ListBox>, distros: 
Vec<DistroRelease>) {
         target.remove_all();
-        for DistroRelease {
-            name, version, url, ..
-        } in distros
-        {
+        for distro in distros {
             let action_row = adw::ActionRow::new();
-            action_row.set_title(&name);
-            if let Some(subtitle) = version {
-                action_row.set_subtitle(&subtitle);
+            action_row.set_title(&distro.name);
+            if let Some(subtitle) = &distro.version {
+                action_row.set_subtitle(subtitle);
             }
             let next_image = gtk::Image::new();
             next_image.set_icon_name(Some("go-next-symbolic"));
@@ -675,20 +668,70 @@
                 #[weak(rename_to=this)]
                 self,
                 move |_| {
-                    let url = url.clone();
-                    let name = name.clone();
-                    this.imp()
-                        .selected_image_file_for_reading
-                        .replace(Some(DiskImage::Online { url, name }));
-                    this.load_stored();
+                    this.save_dialog(distro.clone());
                 }
             ));
             target.append(&action_row);
         }
     }
 
+    fn save_dialog(&self, distro: DistroRelease) {
+        let file_name = distro
+            .url
+            .path_segments()
+            .and_then(|mut segments| segments.next_back())
+            .unwrap_or("disk-image.img");
+
+        let filter = gtk::FileFilter::new();
+        filter.add_pattern("*.img");
+        filter.add_pattern("*.iso");
+        filter.set_name(Some(&gettext("Disk Images")));
+
+        let model = gio::ListStore::new::<gtk::FileFilter>();
+        model.append(&filter);
+
+        gtk::FileDialog::builder()
+            .modal(true)
+            .filters(&model)
+            .initial_name(file_name)
+            .default_filter(&filter)
+            .build()
+            .save(
+                Some(self),
+                gio::Cancellable::NONE,
+                clone!(
+                    #[weak(rename_to=window)]
+                    self,
+                    move |file| match file {
+                        Ok(file) => {
+                            info!("Selected file: {file:?}");
+
+                            let Some(path) = file.path() else {
+                                error!("Failed to get file path for {file:?}");
+                                return;
+                            };
+
+                            info!("Selected path: {}", path.display());
+                            
window.imp().selected_image_file_for_reading.replace(Some(
+                                DiskImage::Online {
+                                    url: distro.url,
+                                    download_path: path,
+                                    name: distro.name,
+                                },
+                            ));
+
+                            window.load_stored();
+                        }
+                        Err(e) => {
+                            error!("Failed to open file dialog: {e}");
+                        }
+                    }
+                ),
+            );
+    }
+
     #[template_callback]
-    async fn open_dialog(&self) {
+    fn open_dialog(&self) {
         let filter = gtk::FileFilter::new();
         filter.add_mime_type("application/x-iso9660-image");
         filter.add_mime_type("application/x-raw-disk-image");
@@ -703,19 +746,28 @@
         let model = gio::ListStore::new::<gtk::FileFilter>();
         model.append(&filter);
 
-        match gtk::FileDialog::builder()
+        gtk::FileDialog::builder()
             .modal(true)
             .filters(&model)
             .default_filter(&filter)
             .build()
-            .open_future(Some(self))
-            .await
-        {
-            Ok(file) => self.open_file(&file),
-            Err(e) => {
-                error!("Failed to open file dialog: {e}");
-            }
-        }
+            .open(
+                Some(self),
+                gio::Cancellable::NONE,
+                clone!(
+                    #[weak(rename_to=window)]
+                    self,
+                    move |file| match file {
+                        Ok(file) => {
+                            info!("Selected file: {file:?}");
+                            window.open_file(&file);
+                        }
+                        Err(e) => {
+                            error!("Failed to open file dialog: {e}");
+                        }
+                    }
+                ),
+            );
     }
 
     pub fn open_file(&self, file: &gio::File) {
@@ -775,7 +827,7 @@
                         }
                     });
             }
-            Some(DiskImage::Online { url: _, name }) => {
+            Some(DiskImage::Online { name, .. }) => {
                 self.imp().name_value_label.set_text(&name);
                 self.imp().size_label.set_text("");
             }
@@ -796,7 +848,7 @@
             sender.send(devices).expect("Concurrency Issues");
         });
 
-        glib::spawn_future_local(glib::clone!(
+        glib::spawn_future_local(clone!(
             #[weak(rename_to = this)]
             self,
             async move {

++++++ impression.obsinfo ++++++
--- /var/tmp/diff_new_pack.nZzDxB/_old  2026-01-27 16:08:07.311558274 +0100
+++ /var/tmp/diff_new_pack.nZzDxB/_new  2026-01-27 16:08:07.319558611 +0100
@@ -1,5 +1,5 @@
 name: impression
-version: 3.5.6
-mtime: 1767062833
-commit: 3c1a0d5d1bbff753d770cd3e299cab95777f104c
+version: 3.6.0
+mtime: 1768196951
+commit: a7dfd401d118835606baf626f518bb733ef6dd9e
 

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/impression/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.impression.new.1928/vendor.tar.zst differ: char 7, 
line 1

Reply via email to