Skip to content

Commit 643ff21

Browse files
committed
Update bindgen and improve link code
1 parent 9c005e6 commit 643ff21

File tree

5 files changed

+43
-29
lines changed

5 files changed

+43
-29
lines changed

alpm-sys/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ generate = ["bindgen"]
1919
docs-rs = []
2020

2121
[build-dependencies]
22-
bindgen = { version = "0.55.1", optional = true, default-features = false, features = ["runtime"] }
23-
pkg-config = "0.3.19"
22+
bindgen = { version = "0.66.1", optional = true, default-features = false, features = ["runtime"] }
23+
pkg-config = "0.3.27"
2424

2525
[package.metadata.docs.rs]
2626
features = [ "docs-rs" ]

alpm-sys/build.rs

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ fn main() {
88

99
#[cfg(feature = "static")]
1010
println!("cargo:rerun-if-changed=/usr/lib/pacman/lib/pkgconfig");
11-
#[cfg(feature = "static")]
12-
println!("cargo:rustc-link-search=/usr/lib/pacman/lib/");
1311
println!("cargo:rerun-if-env-changed=ALPM_LIB_DIR");
1412

1513
if cfg!(feature = "static") && Path::new("/usr/lib/pacman/lib/pkgconfig").exists() {
@@ -20,31 +18,41 @@ fn main() {
2018
println!("cargo:rustc-link-search={}", dir);
2119
}
2220

23-
pkg_config::Config::new()
21+
#[allow(dead_code)]
22+
let lib = pkg_config::Config::new()
2423
.atleast_version("13.0.0")
2524
.statik(cfg!(feature = "static"))
2625
.probe("libalpm")
2726
.unwrap();
2827

2928
#[cfg(feature = "generate")]
3029
{
31-
println!("cargo:rerun-if-env-changed=ALPM_INCLUDE_DIR");
32-
3330
let out_dir = env::var_os("OUT_DIR").unwrap();
3431
let dest_path = Path::new(&out_dir).join("ffi_generated.rs");
3532

36-
let alpm_dir = env::var("ALPM_INCLUDE_DIR");
37-
let alpm_dir = match alpm_dir {
38-
Ok(ref dir) => Path::new(dir),
39-
Err(_) => Path::new("/usr/include"),
40-
};
33+
let header = lib
34+
.include_paths
35+
.iter()
36+
.map(|i| i.join("alpm.h"))
37+
.find(|i| i.exists())
38+
.expect("could not find alpm.h");
39+
let mut include = lib
40+
.include_paths
41+
.iter()
42+
.map(|i| format!("-I{}", i.display().to_string()))
43+
.collect::<Vec<_>>();
4144

42-
let header = alpm_dir.join("alpm.h").to_str().unwrap().to_string();
45+
println!("cargo:rerun-if-env-changed=ALPM_INCLUDE_DIR");
46+
if let Ok(path) = env::var("ALPM_INCLUDE_DIR") {
47+
include.clear();
48+
include.insert(0, path);
49+
}
4350

4451
let bindings = bindgen::builder()
45-
.header(header)
46-
.whitelist_type("(alpm|ALPM).*")
47-
.whitelist_function("(alpm|ALPM).*")
52+
.clang_args(&include)
53+
.header(header.display().to_string())
54+
.allowlist_type("(alpm|ALPM).*")
55+
.allowlist_function("(alpm|ALPM).*")
4856
.rustified_enum("_alpm_[a-z_]+_t")
4957
.rustified_enum("alpm_download_event_type_t")
5058
.constified_enum_module("_alpm_siglevel_t")
@@ -60,6 +68,13 @@ fn main() {
6068
.opaque_type("alpm_pkg_t")
6169
.opaque_type("alpm_trans_t")
6270
.size_t_is_usize(true)
71+
.derive_eq(true)
72+
.derive_ord(true)
73+
.derive_copy(true)
74+
.derive_hash(true)
75+
.derive_debug(true)
76+
.derive_partialeq(true)
77+
.derive_debug(true)
6378
.generate()
6479
.unwrap();
6580

alpm-utils/src/depends.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
use alpm::{AsDep, DepModVer, Ver};
22

33
/// Checks if a dependency is satisfied by a package (name + version).
4-
pub fn satisfies_dep<S: AsRef<str>, V: AsRef<Ver>>(
5-
dep: impl AsDep,
6-
name: S,
7-
version: V,
8-
) -> bool {
4+
pub fn satisfies_dep<S: AsRef<str>, V: AsRef<Ver>>(dep: impl AsDep, name: S, version: V) -> bool {
95
let name = name.as_ref();
106
let dep = dep.as_dep();
117

alpm/src/filelist.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ impl File {
3535
}
3636

3737
pub fn mode(&self) -> u32 {
38-
self.inner.mode
38+
#[allow(clippy::useless_conversion)]
39+
self.inner.mode.into()
3940
}
4041
}
4142

alpm/src/handle.rs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -444,13 +444,15 @@ mod tests {
444444
assert!(!handle.check_space());
445445

446446
assert_eq!(handle.default_siglevel(), SigLevel::NONE);
447-
handle
448-
.set_default_siglevel(SigLevel::PACKAGE | SigLevel::DATABASE)
449-
.unwrap();
450-
assert_eq!(
451-
handle.default_siglevel(),
452-
SigLevel::PACKAGE | SigLevel::DATABASE
453-
);
447+
if crate::Capabilities::new().signatures() {
448+
handle
449+
.set_default_siglevel(SigLevel::PACKAGE | SigLevel::DATABASE)
450+
.unwrap();
451+
assert_eq!(
452+
handle.default_siglevel(),
453+
SigLevel::PACKAGE | SigLevel::DATABASE
454+
);
455+
}
454456

455457
handle.set_ignorepkgs(["a", "b", "c"].iter()).unwrap();
456458
let pkgs = handle.ignorepkgs().iter().collect::<Vec<_>>();

0 commit comments

Comments
 (0)