Add gpg key downloader
This commit is contained in:
parent
830def1d3d
commit
6ab9b48579
42
Cargo.lock
generated
42
Cargo.lock
generated
@ -365,6 +365,18 @@ dependencies = [
|
|||||||
"deb822-lossless",
|
"deb822-lossless",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "duct"
|
||||||
|
version = "0.13.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"once_cell",
|
||||||
|
"os_pipe",
|
||||||
|
"shared_child",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "equivalent"
|
name = "equivalent"
|
||||||
version = "1.0.1"
|
version = "1.0.1"
|
||||||
@ -1311,6 +1323,16 @@ version = "1.19.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
|
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "os_pipe"
|
||||||
|
version = "1.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"windows-sys 0.59.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pango"
|
name = "pango"
|
||||||
version = "0.20.0"
|
version = "0.20.0"
|
||||||
@ -1405,6 +1427,7 @@ dependencies = [
|
|||||||
"chrono",
|
"chrono",
|
||||||
"crossbeam-utils 0.8.20",
|
"crossbeam-utils 0.8.20",
|
||||||
"deb822-tools",
|
"deb822-tools",
|
||||||
|
"duct",
|
||||||
"futures 0.3.30",
|
"futures 0.3.30",
|
||||||
"gtk4",
|
"gtk4",
|
||||||
"legacy-apt-list-tools-rs",
|
"legacy-apt-list-tools-rs",
|
||||||
@ -1767,6 +1790,16 @@ dependencies = [
|
|||||||
"yaml-rust",
|
"yaml-rust",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "shared_child"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"windows-sys 0.59.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "signal-hook-registry"
|
name = "signal-hook-registry"
|
||||||
version = "1.4.2"
|
version = "1.4.2"
|
||||||
@ -2287,6 +2320,15 @@ dependencies = [
|
|||||||
"windows-targets 0.52.6",
|
"windows-targets 0.52.6",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows-sys"
|
||||||
|
version = "0.59.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
|
||||||
|
dependencies = [
|
||||||
|
"windows-targets 0.52.6",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows-targets"
|
name = "windows-targets"
|
||||||
version = "0.48.5"
|
version = "0.48.5"
|
||||||
|
@ -40,4 +40,5 @@ chrono = "0.4.38"
|
|||||||
lock_api = "0.4.2"
|
lock_api = "0.4.2"
|
||||||
libflatpak = { version = "0.5.0", package = "libflatpak", features = ["v1_11_1"] }
|
libflatpak = { version = "0.5.0", package = "libflatpak", features = ["v1_11_1"] }
|
||||||
regex = "1.10.6"
|
regex = "1.10.6"
|
||||||
|
duct = "0.13.7"
|
||||||
|
|
||||||
|
2
Makefile
2
Makefile
@ -14,6 +14,7 @@ install:
|
|||||||
cp -vf target/release/pikman-update-manager $(DESTDIR)/usr/bin/
|
cp -vf target/release/pikman-update-manager $(DESTDIR)/usr/bin/
|
||||||
cp -vf target/release/apt_update $(DESTDIR)/usr/lib/pika/pikman-update-manager/scripts/
|
cp -vf target/release/apt_update $(DESTDIR)/usr/lib/pika/pikman-update-manager/scripts/
|
||||||
cp -vf target/release/apt_full_upgrade $(DESTDIR)/usr/lib/pika/pikman-update-manager/scripts/
|
cp -vf target/release/apt_full_upgrade $(DESTDIR)/usr/lib/pika/pikman-update-manager/scripts/
|
||||||
|
cp -vf data/wget.sh $(DESTDIR)/usr/lib/pika/pikman-update-manager/scripts/
|
||||||
cp -vf data/*.gschema.xml $(DESTDIR)/usr/share/glib-2.0/schemas/
|
cp -vf data/*.gschema.xml $(DESTDIR)/usr/share/glib-2.0/schemas/
|
||||||
#cp -vf data/com.github.pikaos-linux.pikagnomelayouts.desktop $(DESTDIR)/usr/share/applications/
|
#cp -vf data/com.github.pikaos-linux.pikagnomelayouts.desktop $(DESTDIR)/usr/share/applications/
|
||||||
#cp -vfr data/polkit-1 $(DESTDIR)/usr/share/
|
#cp -vfr data/polkit-1 $(DESTDIR)/usr/share/
|
||||||
@ -29,6 +30,7 @@ install_no_build_debug:
|
|||||||
cp -vf target/debug/pikman-update-manager $(DESTDIR)/usr/bin/
|
cp -vf target/debug/pikman-update-manager $(DESTDIR)/usr/bin/
|
||||||
cp -vf target/debug/apt_update $(DESTDIR)/usr/lib/pika/pikman-update-manager/scripts/
|
cp -vf target/debug/apt_update $(DESTDIR)/usr/lib/pika/pikman-update-manager/scripts/
|
||||||
cp -vf target/debug/apt_full_upgrade $(DESTDIR)/usr/lib/pika/pikman-update-manager/scripts/
|
cp -vf target/debug/apt_full_upgrade $(DESTDIR)/usr/lib/pika/pikman-update-manager/scripts/
|
||||||
|
cp -vf data/wget.sh $(DESTDIR)/usr/lib/pika/pikman-update-manager/scripts/
|
||||||
cp -vf data/*.gschema.xml $(DESTDIR)/usr/share/glib-2.0/schemas/
|
cp -vf data/*.gschema.xml $(DESTDIR)/usr/share/glib-2.0/schemas/
|
||||||
#cp -vf data/com.github.pikaos-linux.pikagnomelayouts.desktop $(DESTDIR)/usr/share/applications/
|
#cp -vf data/com.github.pikaos-linux.pikagnomelayouts.desktop $(DESTDIR)/usr/share/applications/
|
||||||
#cp -vfr data/polkit-1 $(DESTDIR)/usr/share/
|
#cp -vfr data/polkit-1 $(DESTDIR)/usr/share/
|
||||||
|
2
data/wget.sh
Normal file
2
data/wget.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
wget -O $2 $1
|
@ -108,5 +108,7 @@
|
|||||||
"unofficial_source_add_is_source_label_label": "With Source Repository",
|
"unofficial_source_add_is_source_label_label": "With Source Repository",
|
||||||
"unofficial_source_signed_keyring_checkbutton_label": "Signed By Keyring",
|
"unofficial_source_signed_keyring_checkbutton_label": "Signed By Keyring",
|
||||||
"unofficial_source_signed_file_checkbutton_label": "Signed By File",
|
"unofficial_source_signed_file_checkbutton_label": "Signed By File",
|
||||||
"unofficial_source_signed_url_checkbutton_label": "Signed By URL"
|
"unofficial_source_signed_url_checkbutton_label": "Signed By URL",
|
||||||
|
"key_download_error_dialog_heading": "GPG Download Error",
|
||||||
|
"key_download_error_dialog_ok_label": "OK"
|
||||||
}
|
}
|
@ -608,13 +608,30 @@ pub fn apt_manage_page(
|
|||||||
Some(unofficial_source_add_archs_entry.text().to_string())
|
Some(unofficial_source_add_archs_entry.text().to_string())
|
||||||
},
|
},
|
||||||
signed_by: match sign_method {
|
signed_by: match sign_method {
|
||||||
1 => Some(unofficial_source_add_archs_entry.text().to_string()),
|
1 => Some(unofficial_source_add_signed_entry.text().to_string()),
|
||||||
2 => Some(format!("/etc/apt/keyrings/{}.gpg.key", repo_file_name)),
|
2 => Some(format!("/etc/apt/keyrings/{}.gpg.key", repo_file_name)),
|
||||||
_ => None
|
_ => None
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
dbg!(new_repo);
|
if sign_method == 2 {
|
||||||
|
let key_download_cmd = duct::cmd!("pkexec", "/usr/lib/pika/pikman-update-manager/scripts/wget.sh", &unofficial_source_add_signed_entry.text().to_string(), &format!("/etc/apt/keyrings/{}.gpg.key", repo_file_name))
|
||||||
|
.run();
|
||||||
|
match key_download_cmd {
|
||||||
|
Ok(_) => {}
|
||||||
|
Err(e) => {
|
||||||
|
let key_download_error_dialog = adw::MessageDialog::builder()
|
||||||
|
.heading(t!("key_download_error_dialog_heading"))
|
||||||
|
.body(e.to_string())
|
||||||
|
.build();
|
||||||
|
key_download_error_dialog.add_response(
|
||||||
|
"key_download_error_dialog_ok",
|
||||||
|
&t!("key_download_error_dialog_ok_label").to_string(),
|
||||||
|
);
|
||||||
|
key_download_error_dialog.present();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"apt_update_dialog_ignore" => {
|
"apt_update_dialog_ignore" => {
|
||||||
unofficial_source_add_dialog.close();
|
unofficial_source_add_dialog.close();
|
||||||
|
Loading…
Reference in New Issue
Block a user