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
kmail: fix calling ext. applications #108824
Conversation
2284709
to
dbf5273
Compare
Split it up now into 2 separate commits, so the actual change becomes more clear and is not obscured by the move of |
dbf5273
to
bb49b62
Compare
Rebased + conflicts solved. |
ping @ttuegel |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Usually, we would add the paths in the wrapper. Is there a reason we must patch the source here, instead?
ping @eliasp |
bb49b62
to
0f4e184
Compare
0f4e184
to
20392b2
Compare
No reason - I just wasn't aware of this way. Fixed that & threw away my little more complicated approach 😄 |
20392b2
to
78a9f17
Compare
|
See 2e2ab21 - is that what you asked for? |
Not sure if bin and lib make sense here. You most likely need them anyway. I think $out and $doc are enough. |
2e2ab21
to
6513963
Compare
KMail relies on quite a few external applications, such as: - kaddressbook - akonadiimportwizard - accountwizard - akonadiselftest Without those, quite a few core functionalities of KMail aren't available, such as: - adding a new account to KMail - using the addressbook for sending a mail - importing existing PIM data - analyzing Akonadi issues Fixed by adding those components to kmail's wrapper's PATH.
6513963
to
fc56e04
Compare
Makes sense - it's fixed now. Thanks! |
fc56e04
to
a0a30df
Compare
Is this still waiting on something? I can offer to test this on my system, although I cannot promise to hit all use cases that then call external programs. |
IMHO nothing left to be done for merging here… I addressed all open issues so far. |
Successfully created backport PR #127332 for |
While testing #127332 I discovered that this PR only resolves this issue for KMail when being run via Any ideas for a cleaner solution? One way would be to expose the external KMail dependencies through a `passthru? attribute and then use these in the kontact derivation. But corrently, kontact does not even use kmail as an input 😕 |
Does Kontact embed KMail as KPart? Then my first approach would probably have made this work. |
Yes, that's how I understand it. The kontact derivation doesn't take kmail as an input, but takes |
Yes, it is definitely using KParts to embed KMail: When I just built
So for proper testing, I might need to overlay the whole KDE ecosystem. Or backport your changes. |
Even if the patches proposed by @eliasp work, we need to weigh the effort of maintaining them with the drawbacks of the simple wrapper solution and wrapping both kmail and kontact separately. Do you think your patches also work on other distros and are thus upstreamable? Because then this might be a clear reason to adopt that approach. |
No, those patches are quite NixOS-specific (hardcoding the binary path for external applications called via Auto-patching all usages of So wrapping |
follow-up to NixOS#108824 It turns out that the wrapping done for each KDE PIM component needs to be done for the component itself as well as for kontact, which then aggregates all of these components as KParts. This commit introuduces specifying these wrapping dependencies in a separate file to make them available for import from their respective derivations. It is designed to be extendable in case other PIM components turn out to require external executables as well.
KMail relies on quite a few external applications, such as:
Without those, quite a few core functionalities of KMail aren't available, such as:
By providing
QStandardPaths::findExecutable()
the store path of saidcomponents, this problem can be circumvented.
Motivation for this change
Make KMail work again
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)