diff -ur rust-gio-0.21.5/src/settings.rs usr/share/cargo/registry/gio-0.21.5/src/settings.rs
--- rust-gio-0.21.5/src/settings.rs	2006-07-24 01:21:28.000000000 +0000
+++ usr/share/cargo/registry/gio-0.21.5/src/settings.rs	2025-12-16 18:47:14.688122397 +0000
@@ -242,6 +242,11 @@
 
     fn set_env() {
         INIT.call_once(|| {
+            // in the autopkgtest environment the crate root is not writable, but
+            // CARGO_TARGET_DIR is.
+            if let Some(cargo_target_dir) = option_env!("CARGO_TARGET_DIR") {
+               std::env::set_current_dir(cargo_target_dir);
+            }
             let tmp_dir = glib::mkdtemp("gio-rs-test-schemas-XXXXXX").unwrap();
 
             let output = Command::new("glib-compile-schemas")
