Bug 2229623

Summary: Problem with requirement of `/usr/libexec/gcr-ssh-askpass`
Product: [Fedora] Fedora Reporter: Jaroslav Mracek <jmracek>
Component: gnome-keyringAssignee: Matthias Clasen <mclasen>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 38CC: debarshir, gnome-sig, mclasen, nielsdegraef, rstrode, stefw, walters
Target Milestone: ---Flags: debarshir: needinfo? (jmracek)
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2180842    

Description Jaroslav Mracek 2023-08-07 06:14:41 UTC
Package gnome-keyring requires: /usr/libexec/gcr-ssh-askpass. 

Why this is a problem:
1. DNF5 stops to download filelists as a default therefore `gnome-keyring` will be not installable
2. It is against Fedora packaging guidelines to require files outside of `/etc`, `/usr/(s)bin`.


Possible solution:
1. use only file provides from  `/etc`, `/usr/(s)bin` (follow packaging guidelines please)
2. Create explicit provider of `/usr/libexec/gcr-ssh-askpass` in `gcr3`
`Provides: /usr/libexec/gcr-ssh-askpass`. This might be required as a temporal solution

Original issue: https://github.com/rpm-software-management/microdnf/issues/135

 

This issue will appear after DNF5 adoption, because DNF5 does not download filelists by default. Packages that requires files are not following Fedora packaging guidelines therefore we should not handle the issue as DNF5 problem. I think we need to do something with the issue to improve an efficiency of Fedora distribution.

Reproducible: Always

Comment 1 Debarshi Ray 2023-08-07 13:38:03 UTC
I took a quick look at this and noticed that the gcr3 RPM 'provides' an empty 'application()':

[rishi@topinka ~]$ rpm --provides -q gcr3
application()
application(gcr-prompter.desktop)
application(gcr-viewer.desktop)
gcr3 = 3.41.1-5.fc38
gcr3(x86-64) = 3.41.1-5.fc38
libgcr-ui-3.so.1()(64bit)

Is that because /usr/libexec/gcr-ssh-askpass doesn't have a matching *.desktop file?

I see that /usr/libexec/gcr-prompter has a matching /usr/share/applications/gcr-prompter.desktop that was added in https://gitlab.gnome.org/GNOME/gcr/-/commit/84999b2e50c9bfe86a1d6b7a56df3ac2299fd4a0 :

commit 84999b2e50c9bfe86a1d6b7a56df3ac2299fd4a0
Author:     Stef Walter <stefw>
AuthorDate: Tue Feb 28 22:02:52 2012 +0100
Commit:     Stef Walter <stefw>
CommitDate: Tue Feb 28 22:06:21 2012 +0100

    Add a desktop file for gcr-prompter
    
     * So that it shows up in the shell correctly
    
    https://bugzilla.gnome.org/show_bug.cgi?id=668535

I wonder if we should do the same for /usr/libexec/gcr-ssh-askpass and depend on 'application(gcr-ssh-askpass)'?