as usize), Box_::into_raw(f) as *mut _)
+ }
+ }
+}
+
+#[cfg(any(feature = "v2017_10", feature = "dox"))]
+unsafe extern "C" fn journal_msg_trampoline(this: *mut ffi::OstreeSysroot, msg: *mut libc::c_char, f: glib_ffi::gpointer)
+where P: IsA {
+ let f: &&(Fn(&P, &str) + 'static) = transmute(f);
+ f(&Sysroot::from_glib_borrow(this).downcast_unchecked(), &String::from_glib_none(msg))
+}
diff --git a/rust-bindings/rust/src/auto/sysroot_upgrader.rs b/rust-bindings/rust/src/auto/sysroot_upgrader.rs
new file mode 100644
index 00000000..4b504848
--- /dev/null
+++ b/rust-bindings/rust/src/auto/sysroot_upgrader.rs
@@ -0,0 +1,188 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from gir-files (https://github.com/gtk-rs/gir-files)
+// DO NOT EDIT
+
+use AsyncProgress;
+use Error;
+use Repo;
+use RepoPullFlags;
+use Sysroot;
+use SysrootUpgraderFlags;
+use SysrootUpgraderPullFlags;
+use ffi;
+use gio;
+use glib;
+use glib::StaticType;
+use glib::Value;
+use glib::object::IsA;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ pub struct SysrootUpgrader(Object);
+
+ match fn {
+ get_type => || ffi::ostree_sysroot_upgrader_get_type(),
+ }
+}
+
+impl SysrootUpgrader {
+ pub fn new<'a, P: Into