fix: ensure file type bit is set for rpm bundle (#5459)
By using the `permissions()` method of `FileOptionsBuilder`, which was added in version 0.20.0 of the `rpm` crate, we fix a bug where newer versions of `rpm` (the package, not the crate) would fail when installing the bundle.
This commit is contained in:
1 parent
a07b406699
commit
610ee8107f
3 files changed
+21
-11
No files matched your search
Generated
+3
-2
@@ -13112,9 +13112,9 @@ checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97"
|
||||
|
||||
[[package]]
|
||||
name = "rpm"
|
||||
version = "0.19.0"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "95c0e45982d67e35e3bbffb24d95e3d0282211ac2dad755b2ab24b9ffc07b199"
|
||||
checksum = "42b9353ebc70385f83520d2490e23139ae78f897a5d7e3b7c34cb8a9f91c69a6"
|
||||
dependencies = [
|
||||
"base64 0.22.1",
|
||||
"bitflags 2.11.0",
|
||||
@@ -13126,6 +13126,7 @@ dependencies = [
|
||||
"itertools 0.14.0",
|
||||
"log",
|
||||
"md-5",
|
||||
"memchr",
|
||||
"nom 8.0.0",
|
||||
"num",
|
||||
"num-derive",
|
||||
|
||||
+1
-1
@@ -239,7 +239,7 @@ image = "0.25.6"
|
||||
zip = { version = "4", default-features = false, features = ["deflate"] }
|
||||
sha1 = "0.10.6"
|
||||
md5 = "0.8.0"
|
||||
rpm = { version = "0.19.0", default-features = false, features = ["gzip-compression"] }
|
||||
rpm = { version = "0.20.0", default-features = false, features = ["gzip-compression"] }
|
||||
lru = "0.16.0"
|
||||
async-trait = "0.1.88"
|
||||
axum = { version = "0.8.4", default-features = false }
|
||||
|
||||
@@ -248,7 +248,10 @@ impl BundleContext<'_> {
|
||||
let binary_path = self.main_binary_path();
|
||||
let dest_bin = format!("/usr/bin/{name}");
|
||||
builder = builder
|
||||
.with_file(&binary_path, rpm::FileOptions::new(dest_bin).mode(0o755))
|
||||
.with_file(
|
||||
&binary_path,
|
||||
rpm::FileOptions::new(dest_bin).permissions(0o755),
|
||||
)
|
||||
.context("Failed to add binary to RPM")?;
|
||||
|
||||
let deb_settings = self.deb();
|
||||
@@ -264,7 +267,7 @@ impl BundleContext<'_> {
|
||||
builder = builder
|
||||
.with_file(
|
||||
&temp_desktop,
|
||||
rpm::FileOptions::new(desktop_dest).mode(0o644),
|
||||
rpm::FileOptions::new(desktop_dest).permissions(0o644),
|
||||
)
|
||||
.context("Failed to add desktop file to RPM")?;
|
||||
|
||||
@@ -287,7 +290,10 @@ impl BundleContext<'_> {
|
||||
let dest =
|
||||
format!("/usr/share/icons/hicolor/{size}x{size}/apps/{name}.png");
|
||||
builder = builder
|
||||
.with_file(icon_path, rpm::FileOptions::new(dest).mode(0o644))
|
||||
.with_file(
|
||||
icon_path,
|
||||
rpm::FileOptions::new(dest).permissions(0o644),
|
||||
)
|
||||
.context("Failed to add icon to RPM")?;
|
||||
}
|
||||
}
|
||||
@@ -295,7 +301,7 @@ impl BundleContext<'_> {
|
||||
"svg" => {
|
||||
let dest = format!("/usr/share/icons/hicolor/scalable/apps/{name}.svg");
|
||||
builder = builder
|
||||
.with_file(icon_path, rpm::FileOptions::new(dest).mode(0o644))
|
||||
.with_file(icon_path, rpm::FileOptions::new(dest).permissions(0o644))
|
||||
.context("Failed to add SVG icon to RPM")?;
|
||||
}
|
||||
"ico" => {
|
||||
@@ -317,7 +323,10 @@ impl BundleContext<'_> {
|
||||
|
||||
let dest = format!("/usr/share/icons/hicolor/{size}x{size}/apps/{name}.png");
|
||||
builder = builder
|
||||
.with_file(&converted_icon, rpm::FileOptions::new(dest).mode(0o644))
|
||||
.with_file(
|
||||
&converted_icon,
|
||||
rpm::FileOptions::new(dest).permissions(0o644),
|
||||
)
|
||||
.context("Failed to add converted ICO icon to RPM")?;
|
||||
}
|
||||
_ => {
|
||||
@@ -341,7 +350,7 @@ impl BundleContext<'_> {
|
||||
relative.to_string_lossy().replace('\\', "/")
|
||||
);
|
||||
builder = builder
|
||||
.with_file(src, rpm::FileOptions::new(&dest).mode(0o644))
|
||||
.with_file(src, rpm::FileOptions::new(&dest).permissions(0o644))
|
||||
.with_context(|| format!("Failed to add resource {} to RPM", relative.display()))?;
|
||||
}
|
||||
|
||||
@@ -355,7 +364,7 @@ impl BundleContext<'_> {
|
||||
.context("External binary is missing a file name")?;
|
||||
let dest = format!("/usr/bin/{dest_name}");
|
||||
builder = builder
|
||||
.with_file(src, rpm::FileOptions::new(&dest).mode(0o755))
|
||||
.with_file(src, rpm::FileOptions::new(&dest).permissions(0o755))
|
||||
.with_context(|| format!("Failed to add external binary {dest_name} to RPM"))?;
|
||||
}
|
||||
|
||||
@@ -374,7 +383,7 @@ impl BundleContext<'_> {
|
||||
format!("/{dest}")
|
||||
};
|
||||
builder = builder
|
||||
.with_file(&src, rpm::FileOptions::new(&dest).mode(0o644))
|
||||
.with_file(&src, rpm::FileOptions::new(&dest).permissions(0o644))
|
||||
.context("Failed to add custom file to RPM")?;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user