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
