From f689ca098f21c9944bcc4b0e997f32b406cec24e Mon Sep 17 00:00:00 2001 From: Luca BRUNO Date: Mon, 24 Oct 2022 15:23:47 +0000 Subject: [PATCH 1/3] rust: regenerate bindings after latest release (2022.6) --- Cargo.toml | 1 + rust-bindings/src/auto/repo.rs | 5 ----- rust-bindings/src/auto/repo_finder_result.rs | 1 - rust-bindings/src/auto/sysroot.rs | 2 +- rust-bindings/src/auto/versions.txt | 2 +- rust-bindings/sys/Cargo.toml | 4 ++++ rust-bindings/sys/src/auto/versions.txt | 2 +- rust-bindings/sys/src/lib.rs | 7 ++++++- 8 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 4b865f2e..662de1cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -101,3 +101,4 @@ v2021_3 = ["v2021_2", "ffi/v2021_3"] v2021_4 = ["v2021_3", "ffi/v2021_4"] v2021_5 = ["v2021_4", "ffi/v2021_5"] v2022_5 = ["v2021_5", "ffi/v2022_5"] +v2022_6 = ["v2022_5", "ffi/v2022_6"] diff --git a/rust-bindings/src/auto/repo.rs b/rust-bindings/src/auto/repo.rs index 4bafe755..56a39c16 100644 --- a/rust-bindings/src/auto/repo.rs +++ b/rust-bindings/src/auto/repo.rs @@ -428,11 +428,6 @@ impl Repo { // unsafe { TODO: call ffi:ostree_repo_list_collection_refs() } //} - //#[doc(alias = "ostree_repo_list_commit_objects_starting_with")] - //pub fn list_commit_objects_starting_with>(&self, start: &str, out_commits: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 203 }/TypeId { ns_id: 2, id: 203 }, cancellable: Option<&P>) -> Result<(), glib::Error> { - // unsafe { TODO: call ffi:ostree_repo_list_commit_objects_starting_with() } - //} - //#[doc(alias = "ostree_repo_list_objects")] //pub fn list_objects>(&self, flags: RepoListObjectsFlags, out_objects: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 203 }/TypeId { ns_id: 2, id: 203 }, cancellable: Option<&P>) -> Result<(), glib::Error> { // unsafe { TODO: call ffi:ostree_repo_list_objects() } diff --git a/rust-bindings/src/auto/repo_finder_result.rs b/rust-bindings/src/auto/repo_finder_result.rs index 702ec52c..b6850ca7 100644 --- a/rust-bindings/src/auto/repo_finder_result.rs +++ b/rust-bindings/src/auto/repo_finder_result.rs @@ -3,7 +3,6 @@ // DO NOT EDIT use std::cmp; -use glib::translate::*; glib::wrapper! { #[derive(Debug, Hash)] diff --git a/rust-bindings/src/auto/sysroot.rs b/rust-bindings/src/auto/sysroot.rs index a88b3f66..ecec2328 100644 --- a/rust-bindings/src/auto/sysroot.rs +++ b/rust-bindings/src/auto/sysroot.rs @@ -110,7 +110,7 @@ impl Sysroot { } #[doc(alias = "ostree_sysroot_deployment_set_kargs_in_place")] - pub fn deployment_set_kargs_in_place>(&self, deployment: &Deployment, kargs_str: &str, cancellable: Option<&P>) -> Result<(), glib::Error> { + pub fn deployment_set_kargs_in_place>(&self, deployment: &Deployment, kargs_str: Option<&str>, cancellable: Option<&P>) -> Result<(), glib::Error> { unsafe { let mut error = ptr::null_mut(); let _ = ffi::ostree_sysroot_deployment_set_kargs_in_place(self.to_glib_none().0, deployment.to_glib_none().0, kargs_str.to_glib_none().0, cancellable.map(|p| p.as_ref()).to_glib_none().0, &mut error); diff --git a/rust-bindings/src/auto/versions.txt b/rust-bindings/src/auto/versions.txt index f22d532f..57f26297 100644 --- a/rust-bindings/src/auto/versions.txt +++ b/rust-bindings/src/auto/versions.txt @@ -1,2 +1,2 @@ Generated by gir (https://github.com/gtk-rs/gir @ e8f82cf6) -from gir-files (@ 1d478ced) +from gir-files (@ a19cc348) diff --git a/rust-bindings/sys/Cargo.toml b/rust-bindings/sys/Cargo.toml index 5145ab87..9cae2512 100644 --- a/rust-bindings/sys/Cargo.toml +++ b/rust-bindings/sys/Cargo.toml @@ -57,6 +57,7 @@ v2021_4 = ["v2021_3"] v2021_5 = ["v2021_4"] v2022_2 = ["v2021_5"] v2022_5 = ["v2022_2"] +v2022_6 = ["v2022_5"] [lib] name = "ostree_sys" @@ -211,3 +212,6 @@ version = "2022.2" [package.metadata.system-deps.ostree_1.v2022_5] version = "2022.5" + +[package.metadata.system-deps.ostree_1.v2022_6] +version = "2022.6" diff --git a/rust-bindings/sys/src/auto/versions.txt b/rust-bindings/sys/src/auto/versions.txt index f22d532f..57f26297 100644 --- a/rust-bindings/sys/src/auto/versions.txt +++ b/rust-bindings/sys/src/auto/versions.txt @@ -1,2 +1,2 @@ Generated by gir (https://github.com/gtk-rs/gir @ e8f82cf6) -from gir-files (@ 1d478ced) +from gir-files (@ a19cc348) diff --git a/rust-bindings/sys/src/lib.rs b/rust-bindings/sys/src/lib.rs index 837c60b0..84c91a58 100644 --- a/rust-bindings/sys/src/lib.rs +++ b/rust-bindings/sys/src/lib.rs @@ -525,7 +525,8 @@ pub struct OstreeRepoCheckoutAtOptions { pub force_copy: gboolean, pub bareuseronly_dirs: gboolean, pub force_copy_zerosized: gboolean, - pub unused_bools: [gboolean; 4], + pub process_passthrough_whiteouts: gboolean, + pub unused_bools: [gboolean; 3], pub subpath: *const c_char, pub devino_to_csum_cache: *mut OstreeRepoDevInoCache, pub unused_ints: [c_int; 6], @@ -548,6 +549,10 @@ impl ::std::fmt::Debug for OstreeRepoCheckoutAtOptions { .field("force_copy", &self.force_copy) .field("bareuseronly_dirs", &self.bareuseronly_dirs) .field("force_copy_zerosized", &self.force_copy_zerosized) + .field( + "process_passthrough_whiteouts", + &self.process_passthrough_whiteouts, + ) .field("unused_bools", &self.unused_bools) .field("subpath", &self.subpath) .field("devino_to_csum_cache", &self.devino_to_csum_cache) From 6aa7d6e9f7f50654b6dc39568ad3f3066ebb910e Mon Sep 17 00:00:00 2001 From: Luca BRUNO Date: Fri, 4 Mar 2022 14:28:35 +0000 Subject: [PATCH 2/3] ostree: manually patch generated files This manually adds a missing `ToGlibPtr` import, which seems to be result of some bugs in `gir` code-generation. --- rust-bindings/src/auto/repo_finder_result.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/rust-bindings/src/auto/repo_finder_result.rs b/rust-bindings/src/auto/repo_finder_result.rs index b6850ca7..702ec52c 100644 --- a/rust-bindings/src/auto/repo_finder_result.rs +++ b/rust-bindings/src/auto/repo_finder_result.rs @@ -3,6 +3,7 @@ // DO NOT EDIT use std::cmp; +use glib::translate::*; glib::wrapper! { #[derive(Debug, Hash)] From 10cecd73f030b8717e13107063541d8467ebf8cc Mon Sep 17 00:00:00 2001 From: Luca BRUNO Date: Mon, 24 Oct 2022 16:01:57 +0000 Subject: [PATCH 3/3] rust: update manual helpers --- .../src/repo_checkout_at_options/mod.rs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/rust-bindings/src/repo_checkout_at_options/mod.rs b/rust-bindings/src/repo_checkout_at_options/mod.rs index 9e47017d..b0ded2c7 100644 --- a/rust-bindings/src/repo_checkout_at_options/mod.rs +++ b/rust-bindings/src/repo_checkout_at_options/mod.rs @@ -31,6 +31,9 @@ pub struct RepoCheckoutAtOptions { /// Copy zero-sized files rather than hardlinking. #[cfg(any(feature = "v2018_9", feature = "dox"))] pub force_copy_zerosized: bool, + /// Enable overlayfs whiteout extraction into char 0:0 devices. + #[cfg(any(feature = "v2022_6", feature = "dox"))] + pub process_passthrough_whiteouts: bool, /// Only check out this subpath. pub subpath: Option, /// A cache from device, inode pairs to checksums. @@ -68,6 +71,8 @@ impl Default for RepoCheckoutAtOptions { bareuseronly_dirs: false, #[cfg(feature = "v2018_9")] force_copy_zerosized: false, + #[cfg(feature = "v2022_6")] + process_passthrough_whiteouts: false, subpath: None, devino_to_csum_cache: None, #[cfg(feature = "v2018_2")] @@ -124,6 +129,11 @@ impl<'a> ToGlibPtr<'a, *const ffi::OstreeRepoCheckoutAtOptions> for RepoCheckout options.force_copy_zerosized = self.force_copy_zerosized.into_glib(); } + #[cfg(feature = "v2022_6")] + { + options.process_passthrough_whiteouts = self.process_passthrough_whiteouts.into_glib(); + } + // We keep these complex values alive by returning them in our Stash. Technically, some of // these are being kept alive by `self` already, but it's better to be consistent here. let subpath = self.subpath.to_glib_none(); @@ -191,7 +201,9 @@ mod tests { assert_eq!((*ptr).bareuseronly_dirs, GFALSE); #[cfg(feature = "v2018_9")] assert_eq!((*ptr).force_copy_zerosized, GFALSE); - assert_eq!((*ptr).unused_bools, [GFALSE; 4]); + #[cfg(feature = "v2022_6")] + assert_eq!((*ptr).process_passthrough_whiteouts, GFALSE); + assert_eq!((*ptr).unused_bools, [GFALSE; 3]); assert_eq!((*ptr).subpath, ptr::null()); assert_eq!((*ptr).devino_to_csum_cache, ptr::null_mut()); assert_eq!((*ptr).unused_ints, [0; 6]); @@ -221,6 +233,8 @@ mod tests { bareuseronly_dirs: true, #[cfg(feature = "v2018_9")] force_copy_zerosized: true, + #[cfg(feature = "v2022_6")] + process_passthrough_whiteouts: true, subpath: Some("sub/path".into()), devino_to_csum_cache: Some(RepoDevInoCache::new()), #[cfg(feature = "v2018_2")] @@ -251,7 +265,9 @@ mod tests { assert_eq!((*ptr).bareuseronly_dirs, GTRUE); #[cfg(feature = "v2018_9")] assert_eq!((*ptr).force_copy_zerosized, GTRUE); - assert_eq!((*ptr).unused_bools, [GFALSE; 4]); + #[cfg(feature = "v2022_6")] + assert_eq!((*ptr).process_passthrough_whiteouts, GTRUE); + assert_eq!((*ptr).unused_bools, [GFALSE; 3]); assert_eq!( CStr::from_ptr((*ptr).subpath), CString::new("sub/path").unwrap().as_c_str()