rpm-ostree/rust/src/libdnf_sys.rs
Jonathan Lebon 2589cd1f92 rust/lockfile: Add more metadata to generated lockfiles
E.g. the generation timestamp, repos that were enabled, and their
generation timestamps.

This is just generally useful, though I'd like to make use specifically
of the new `metadata.generated` key in FCOS to drive versioning:

https://github.com/coreos/fedora-coreos-releng-automation/pull/50
2019-11-12 16:17:03 +01:00

36 lines
1.5 KiB
Rust

/*
* Copyright (C) 2019 Red Hat, Inc.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
use libc;
use glib_sys;
/* This is an experiment in calling libdnf functions from Rust. Really, it'd be more sustainable to
* generate a "libdnf-sys" from SWIG (though it doesn't look like that's supported yet
* https://github.com/swig/swig/issues/1468) or at least `bindgen` for the strict C parts of the
* API. For now, I just took the shortcut of manually defining a tiny subset we care about. */
#[repr(C)]
pub(crate) struct DnfPackage(libc::c_void);
#[repr(C)]
pub(crate) struct DnfRepo(libc::c_void);
#[allow(dead_code)]
extern {
pub(crate) fn dnf_package_get_nevra(package: *mut DnfPackage) -> *const libc::c_char;
pub(crate) fn dnf_package_get_name(package: *mut DnfPackage) -> *const libc::c_char;
pub(crate) fn dnf_package_get_evr(package: *mut DnfPackage) -> *const libc::c_char;
pub(crate) fn dnf_package_get_arch(package: *mut DnfPackage) -> *const libc::c_char;
pub(crate) fn dnf_repo_get_id(repo: *mut DnfRepo) -> *const libc::c_char;
pub(crate) fn dnf_repo_get_timestamp_generated(repo: *mut DnfRepo) -> u64;
}
/* And some helper rpm-ostree C functions to deal with libdnf stuff. These are prime candidates for
* oxidation since it makes e.g. interacting with strings less efficient. */
extern {
pub(crate) fn rpmostree_get_repodata_chksum_repr(package: *mut DnfPackage, chksum: *mut *mut libc::c_char, gerror: *mut *mut glib_sys::GError) -> libc::c_int;
}