Skip to content

Commit 6bdba1f

Browse files
fix(bundler/deb): use lintian-compliant permissions , closes #7992 (#8585)
1 parent b546b42 commit 6bdba1f

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'tauri-bundler': 'patch:bug'
3+
---
4+
5+
6+
Fix the `non-standard-file-perm` and `non-standard-dir-perm` issue in Debian packages

tooling/bundler/src/bundle/linux/debian.rs

+7-10
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@ use image::{self, codecs::png::PngDecoder, ImageDecoder};
3232
use libflate::gzip;
3333
use log::info;
3434
use serde::Serialize;
35+
use tar::HeaderMode;
3536
use walkdir::WalkDir;
3637

3738
use std::{
3839
collections::BTreeSet,
3940
ffi::OsStr,
4041
fs::{self, read_to_string, File},
4142
io::{self, Write},
43+
os::unix::fs::MetadataExt,
4244
path::{Path, PathBuf},
4345
};
4446

@@ -366,20 +368,15 @@ fn create_tar_from_dir<P: AsRef<Path>, W: Write>(src_dir: P, dest_file: W) -> cr
366368
continue;
367369
}
368370
let dest_path = src_path.strip_prefix(src_dir)?;
371+
let stat = fs::metadata(src_path)?;
372+
let mut header = tar::Header::new_gnu();
373+
header.set_metadata_in_mode(&stat, HeaderMode::Deterministic);
374+
header.set_mtime(stat.mtime() as u64);
375+
369376
if entry.file_type().is_dir() {
370-
let stat = fs::metadata(src_path)?;
371-
let mut header = tar::Header::new_gnu();
372-
header.set_metadata(&stat);
373-
header.set_uid(0);
374-
header.set_gid(0);
375377
tar_builder.append_data(&mut header, dest_path, &mut io::empty())?;
376378
} else {
377379
let mut src_file = fs::File::open(src_path)?;
378-
let stat = src_file.metadata()?;
379-
let mut header = tar::Header::new_gnu();
380-
header.set_metadata(&stat);
381-
header.set_uid(0);
382-
header.set_gid(0);
383380
tar_builder.append_data(&mut header, dest_path, &mut src_file)?;
384381
}
385382
}

0 commit comments

Comments
 (0)