-
-
Notifications
You must be signed in to change notification settings - Fork 238
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sign_pkg fails to overwrite signature when rebuilding package #1256
Comments
This change lets gpg overwrite the detached signatures of the packages when the files already exist. Without --yes, and in combination with --batch, gpg fails (exit 2) without overwriting any file. Fixes Morganamilo#1256
Nevermind, I think the source code already has a solution to delete the signature before generating a new one, but this is never used because |
Don't know how this would happen as it should skip if the sig already exists. As you didn't provide any output logs I can't really debug this. Feel free to open a new issue with logs. |
When a signature exists, I am still asked for the gpg private key password, but the new siganture is not saved. This is problematic when I'm trying to rebuild packages because the new package is updated, but the signature is not, causing issues later when trying to install the package. I locally solved this issue changing this: --- a/src/install.rs
+++ b/src/install.rs
@@ -632,7 +632,7 @@ impl Installer {
.chain(debug_paths.values())
.map(|s| s.as_str())
.collect::<Vec<_>>();
- sign_pkg(config, &paths, false)?;
+ sign_pkg(config, &paths, true)?;
if let Some(ref repo) = repo {
if let Some(repo) = self.upgrades.aur_repos.get(base.package_base()) { |
Affected Version
paru v2.0.4 - libalpm v15.0.0
Description
When paru is configured to sign local repos, if a package already exists in the repo and contains a detach signature, when rebuilding the package, the signature file is not overwritten, leading to failure later when the package is installed.
This is because the command used by
sign_pkg()
:gpg --detach-sign --no-armor --batch
fails with the following error when the file already existsgpg: signing failed: File exists
. A possible solution is to pass--yes
as an additional argument.I don't understand why this is not caught by the function as an error since gpg exists with code 2 instead of 0.
Output
paru.conf
The text was updated successfully, but these errors were encountered: