Use glib-sys via re-exported `glib::ffi` (and similar for gio)
In general only `-sys` crates should depend on other `-sys` crates. IOW for us, `ostree-sys` depends on `glib-sys`. By using the re-export, we avoid needing to keep a version lock between `glib` and `glib-sys` in our main crate. And similar is true of our higher level reverse dependencies (e.g. `ostree-rs-ext`). Also weaken our dependency to `0.14` as that's clearer.
This commit is contained in:
parent
709b35bf11
commit
9b57bda607
|
|
@ -60,9 +60,6 @@ pages:
|
||||||
variables:
|
variables:
|
||||||
RUSTDOCFLAGS: >-
|
RUSTDOCFLAGS: >-
|
||||||
-Z unstable-options
|
-Z unstable-options
|
||||||
--extern-html-root-url glib_sys=https://gtk-rs.org/docs
|
|
||||||
--extern-html-root-url gobject_sys=https://gtk-rs.org/docs
|
|
||||||
--extern-html-root-url gio_sys=https://gtk-rs.org/docs
|
|
||||||
--extern-html-root-url glib=https://gtk-rs.org/docs
|
--extern-html-root-url glib=https://gtk-rs.org/docs
|
||||||
--extern-html-root-url gio=https://gtk-rs.org/docs
|
--extern-html-root-url gio=https://gtk-rs.org/docs
|
||||||
script:
|
script:
|
||||||
|
|
|
||||||
|
|
@ -30,11 +30,8 @@ members = [".", "sys"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bitflags = "1.2.1"
|
bitflags = "1.2.1"
|
||||||
ffi = { package = "ostree-sys", path = "sys", version = "0.8.1" }
|
ffi = { package = "ostree-sys", path = "sys", version = "0.8.1" }
|
||||||
gio = "0.14.0"
|
gio = "0.14"
|
||||||
gio-sys = "0.14.0"
|
glib = "0.14"
|
||||||
glib = "0.14.0"
|
|
||||||
glib-sys = "0.14.0"
|
|
||||||
gobject-sys = "0.14.0"
|
|
||||||
hex = "0.4.2"
|
hex = "0.4.2"
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
once_cell = "1.4.0"
|
once_cell = "1.4.0"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
|
use glib::ffi::{g_free, g_malloc0, gpointer};
|
||||||
use glib::translate::{FromGlibPtrFull, FromGlibPtrNone};
|
use glib::translate::{FromGlibPtrFull, FromGlibPtrNone};
|
||||||
use glib_sys::{g_free, g_malloc0, gpointer};
|
|
||||||
use once_cell::sync::OnceCell;
|
use once_cell::sync::OnceCell;
|
||||||
use std::ptr::copy_nonoverlapping;
|
use std::ptr::copy_nonoverlapping;
|
||||||
|
|
||||||
|
|
@ -168,8 +168,8 @@ impl FromGlibPtrNone<*mut [u8; BYTES_LEN]> for Checksum {
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
use glib::ffi::g_malloc0;
|
||||||
use glib::translate::from_glib_full;
|
use glib::translate::from_glib_full;
|
||||||
use glib_sys::g_malloc0;
|
|
||||||
|
|
||||||
const CHECKSUM_BYTES: &[u8; BYTES_LEN] = b"\xbf\x87S\x06x>\xfd\xc5\xbc\xab7\xea\x10\xb6\xcaN\x9bj\xea\x8b\x94X\r\x0c\xa9J\xf1 V\\\x0e\x8a";
|
const CHECKSUM_BYTES: &[u8; BYTES_LEN] = b"\xbf\x87S\x06x>\xfd\xc5\xbc\xab7\xea\x10\xb6\xcaN\x9bj\xea\x8b\x94X\r\x0c\xa9J\xf1 V\\\x0e\x8a";
|
||||||
const CHECKSUM_HEX: &str = "bf875306783efdc5bcab37ea10b6ca4e9b6aea8b94580d0ca94af120565c0e8a";
|
const CHECKSUM_HEX: &str = "bf875306783efdc5bcab37ea10b6ca4e9b6aea8b94580d0ca94af120565c0e8a";
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
#[cfg(any(feature = "v2017_13", feature = "dox"))]
|
#[cfg(any(feature = "v2017_13", feature = "dox"))]
|
||||||
use crate::ChecksumFlags;
|
use crate::ChecksumFlags;
|
||||||
use crate::{Checksum, ObjectType};
|
use crate::{Checksum, ObjectType};
|
||||||
|
use glib::ffi::GFALSE;
|
||||||
use glib::{prelude::*, translate::*};
|
use glib::{prelude::*, translate::*};
|
||||||
use glib_sys::GFALSE;
|
|
||||||
use std::{future::Future, mem::MaybeUninit, pin::Pin, ptr};
|
use std::{future::Future, mem::MaybeUninit, pin::Pin, ptr};
|
||||||
|
|
||||||
/// Compute the SHA-256 checksum of a file.
|
/// Compute the SHA-256 checksum of a file.
|
||||||
|
|
@ -41,9 +41,9 @@ pub fn checksum_file_async<
|
||||||
unsafe extern "C" fn checksum_file_async_trampoline<
|
unsafe extern "C" fn checksum_file_async_trampoline<
|
||||||
R: FnOnce(Result<Checksum, Box<dyn std::error::Error>>) + Send + 'static,
|
R: FnOnce(Result<Checksum, Box<dyn std::error::Error>>) + Send + 'static,
|
||||||
>(
|
>(
|
||||||
_source_object: *mut gobject_sys::GObject,
|
_source_object: *mut glib::gobject_ffi::GObject,
|
||||||
res: *mut gio_sys::GAsyncResult,
|
res: *mut gio::ffi::GAsyncResult,
|
||||||
user_data: glib_sys::gpointer,
|
user_data: glib::ffi::gpointer,
|
||||||
) {
|
) {
|
||||||
let mut error = ptr::null_mut();
|
let mut error = ptr::null_mut();
|
||||||
let mut out_csum = MaybeUninit::uninit();
|
let mut out_csum = MaybeUninit::uninit();
|
||||||
|
|
@ -145,7 +145,7 @@ pub fn checksum_file_at<P: IsA<gio::Cancellable>>(
|
||||||
|
|
||||||
unsafe fn checksum_file_error(
|
unsafe fn checksum_file_error(
|
||||||
out_csum: *mut [*mut u8; 32],
|
out_csum: *mut [*mut u8; 32],
|
||||||
error: *mut glib_sys::GError,
|
error: *mut glib::ffi::GError,
|
||||||
ret: i32,
|
ret: i32,
|
||||||
) -> Result<Checksum, Box<dyn std::error::Error>> {
|
) -> Result<Checksum, Box<dyn std::error::Error>> {
|
||||||
if !error.is_null() {
|
if !error.is_null() {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ use crate::{object_name_deserialize, object_name_serialize, object_to_string};
|
||||||
use glib;
|
use glib;
|
||||||
use glib::translate::*;
|
use glib::translate::*;
|
||||||
use glib::GString;
|
use glib::GString;
|
||||||
use glib_sys;
|
|
||||||
use std::fmt::Display;
|
use std::fmt::Display;
|
||||||
use std::fmt::Error;
|
use std::fmt::Error;
|
||||||
use std::fmt::Formatter;
|
use std::fmt::Formatter;
|
||||||
|
|
@ -11,7 +10,7 @@ use std::hash::Hash;
|
||||||
use std::hash::Hasher;
|
use std::hash::Hasher;
|
||||||
|
|
||||||
fn hash_object_name(v: &glib::Variant) -> u32 {
|
fn hash_object_name(v: &glib::Variant) -> u32 {
|
||||||
unsafe { ffi::ostree_hash_object_name(v.to_glib_none().0 as glib_sys::gconstpointer) }
|
unsafe { ffi::ostree_hash_object_name(v.to_glib_none().0 as glib::ffi::gconstpointer) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A reference to an object in an OSTree repo. It contains both a checksum and an
|
/// A reference to an object in an OSTree repo. It contains both a checksum and an
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,8 @@
|
||||||
use crate::RepoListRefsExtFlags;
|
use crate::RepoListRefsExtFlags;
|
||||||
use crate::{Checksum, ObjectName, ObjectType, Repo};
|
use crate::{Checksum, ObjectName, ObjectType, Repo};
|
||||||
use ffi;
|
use ffi;
|
||||||
use gio_sys;
|
use glib::ffi as glib_sys;
|
||||||
use glib::{self, translate::*, Error, IsA};
|
use glib::{self, translate::*, Error, IsA};
|
||||||
use glib_sys;
|
|
||||||
use std::{
|
use std::{
|
||||||
collections::{HashMap, HashSet},
|
collections::{HashMap, HashSet},
|
||||||
future::Future,
|
future::Future,
|
||||||
|
|
@ -193,9 +192,9 @@ impl Repo {
|
||||||
unsafe extern "C" fn write_content_async_trampoline<
|
unsafe extern "C" fn write_content_async_trampoline<
|
||||||
R: FnOnce(Result<Checksum, Error>) + Send + 'static,
|
R: FnOnce(Result<Checksum, Error>) + Send + 'static,
|
||||||
>(
|
>(
|
||||||
_source_object: *mut gobject_sys::GObject,
|
_source_object: *mut glib::gobject_ffi::GObject,
|
||||||
res: *mut gio_sys::GAsyncResult,
|
res: *mut gio::ffi::GAsyncResult,
|
||||||
user_data: glib_sys::gpointer,
|
user_data: glib::ffi::gpointer,
|
||||||
) {
|
) {
|
||||||
let mut error = ptr::null_mut();
|
let mut error = ptr::null_mut();
|
||||||
let mut out_csum = MaybeUninit::uninit();
|
let mut out_csum = MaybeUninit::uninit();
|
||||||
|
|
@ -268,8 +267,8 @@ impl Repo {
|
||||||
unsafe extern "C" fn write_metadata_async_trampoline<
|
unsafe extern "C" fn write_metadata_async_trampoline<
|
||||||
Q: FnOnce(Result<Checksum, Error>) + Send + 'static,
|
Q: FnOnce(Result<Checksum, Error>) + Send + 'static,
|
||||||
>(
|
>(
|
||||||
_source_object: *mut gobject_sys::GObject,
|
_source_object: *mut glib::gobject_ffi::GObject,
|
||||||
res: *mut gio_sys::GAsyncResult,
|
res: *mut gio::ffi::GAsyncResult,
|
||||||
user_data: glib_sys::gpointer,
|
user_data: glib_sys::gpointer,
|
||||||
) {
|
) {
|
||||||
let mut error = ptr::null_mut();
|
let mut error = ptr::null_mut();
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,7 @@ impl<'a> ToGlibPtr<'a, *const ffi::OstreeRepoCheckoutAtOptions> for RepoCheckout
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use glib_sys::{GFALSE, GTRUE};
|
use glib::ffi::{GFALSE, GTRUE};
|
||||||
use std::ffi::{CStr, CString};
|
use std::ffi::{CStr, CString};
|
||||||
use std::ptr;
|
use std::ptr;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use crate::{Repo, RepoCheckoutFilterResult};
|
use crate::{Repo, RepoCheckoutFilterResult};
|
||||||
|
use glib::ffi::gpointer;
|
||||||
use glib::translate::*;
|
use glib::translate::*;
|
||||||
use glib_sys::gpointer;
|
|
||||||
use libc::c_char;
|
use libc::c_char;
|
||||||
use std::any::Any;
|
use std::any::Any;
|
||||||
use std::panic::catch_unwind;
|
use std::panic::catch_unwind;
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
use gobject_sys;
|
|
||||||
|
|
||||||
glib::wrapper! {
|
glib::wrapper! {
|
||||||
/// A list of statistics for each transaction that may be interesting for reporting purposes.
|
/// A list of statistics for each transaction that may be interesting for reporting purposes.
|
||||||
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||||
pub struct RepoTransactionStats(Boxed<ffi::OstreeRepoTransactionStats>);
|
pub struct RepoTransactionStats(Boxed<ffi::OstreeRepoTransactionStats>);
|
||||||
|
|
||||||
match fn {
|
match fn {
|
||||||
copy => |ptr| gobject_sys::g_boxed_copy(ffi::ostree_repo_transaction_stats_get_type(), ptr as *mut _) as *mut ffi::OstreeRepoTransactionStats,
|
copy => |ptr| glib::gobject_ffi::g_boxed_copy(ffi::ostree_repo_transaction_stats_get_type(), ptr as *mut _) as *mut ffi::OstreeRepoTransactionStats,
|
||||||
free => |ptr| gobject_sys::g_boxed_free(ffi::ostree_repo_transaction_stats_get_type(), ptr as *mut _),
|
free => |ptr| glib::gobject_ffi::g_boxed_free(ffi::ostree_repo_transaction_stats_get_type(), ptr as *mut _),
|
||||||
init => |_ptr| (),
|
init => |_ptr| (),
|
||||||
clear => |_ptr| (),
|
clear => |_ptr| (),
|
||||||
type_ => || ffi::ostree_repo_transaction_stats_get_type(),
|
type_ => || ffi::ostree_repo_transaction_stats_get_type(),
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ impl<'a> ToGlibPtr<'a, *const OstreeSysrootWriteDeploymentsOpts> for SysrootWrit
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use glib_sys::{GFALSE, GTRUE};
|
use glib::ffi::{GFALSE, GTRUE};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn should_convert_default_options() {
|
fn should_convert_default_options() {
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ repository = "fkrull/ostree-rs"
|
||||||
system-deps = "3"
|
system-deps = "3"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
glib-sys = "0.14.0"
|
glib-sys = "0.14"
|
||||||
gobject-sys = "0.14.0"
|
gobject-sys = "0.14"
|
||||||
gio-sys = "0.14.0"
|
gio-sys = "0.14"
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue