summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2021-08-09 06:56:30 +0000
committerLars Wirzenius <liw@liw.fi>2021-08-09 06:56:30 +0000
commit22a4e91448b40477a8247adc7834fa62f02725c6 (patch)
tree558b51898251a28b8f5986c0ceb6824d04749153
parent0af848392da0471076f9a393fe09d4f808ef63a8 (diff)
parent6ec6d4021bb2613e24224220bfa171146384a344 (diff)
downloadobnam2-22a4e91448b40477a8247adc7834fa62f02725c6.tar.gz
Merge branch 'fix-macos' into 'main'
Fix compilation on MacOS See merge request obnam/obnam!173
-rw-r--r--src/cmd/restore.rs2
-rw-r--r--src/fsentry.rs7
2 files changed, 7 insertions, 2 deletions
diff --git a/src/cmd/restore.rs b/src/cmd/restore.rs
index e03f3de..e9e89b5 100644
--- a/src/cmd/restore.rs
+++ b/src/cmd/restore.rs
@@ -264,7 +264,7 @@ fn restore_metadata(path: &Path, entry: &FilesystemEntry) -> Result<(), RestoreE
unsafe {
if entry.kind() != FilesystemKind::Symlink {
debug!("chmod {:?}", path);
- if chmod(path.as_ptr(), entry.mode()) == -1 {
+ if chmod(path.as_ptr(), entry.mode() as libc::mode_t) == -1 {
let error = Error::last_os_error();
error!("chmod failed on {:?}", path);
return Err(RestoreError::Chmod(pathbuf, error));
diff --git a/src/fsentry.rs b/src/fsentry.rs
index 1a30d41..8338cc2 100644
--- a/src/fsentry.rs
+++ b/src/fsentry.rs
@@ -3,11 +3,16 @@ use serde::{Deserialize, Serialize};
use std::ffi::OsString;
use std::fs::read_link;
use std::fs::{FileType, Metadata};
-use std::os::linux::fs::MetadataExt;
use std::os::unix::ffi::OsStringExt;
use std::os::unix::fs::FileTypeExt;
use std::path::{Path, PathBuf};
+#[cfg(target_os = "linux")]
+use std::os::linux::fs::MetadataExt;
+
+#[cfg(target_os = "macos")]
+use std::os::macos::fs::MetadataExt;
+
/// A file system entry.
///
/// Represent all backup-relevant the metadata about a file system