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
[WIP] Refactor libprefixed packages to multioutput #38494
Conversation
We can't say final farewell for it, due ffado-mixer, which give us nice build-loop, so postpone it until I (or someone other) write separate derivation for mixer-only (because is just python script, with dependencies in PyQT/PyDbus)
Hi! Thanks for doing this. I opened a similar PR in #39683 but you seem to have gotten further along. A few more that (maybe) can be removed:
|
optAlsaLib = shouldUsePkg alsaLib; | ||
# Mixer/tools dependencies | ||
# FIXME: can we build mixer separately? Then we can farewell `libOnly` mode | ||
# (otherwise we have perfect loop via qt -> pulseaudio -> jack -> ffado -> qt) |
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.
We can probably override ffado in jack's callPackage-jack shouldn't need Qt.
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.
ffado' mixer is actually separate app, which have completely own dependencies (dbus-python and PyQt), so I feel separate expression may be better solution. But would be nice to hear someone who use ffado.
optPythonDBus = if libOnly then null else shouldUsePkg dbus-python; | ||
optLibffado = if libOnly then null else shouldUsePkg libffado; | ||
optAlsaLib = if libOnly then null else shouldUsePkg alsaLib; | ||
optPythonDBus = shouldUsePkg dbus-python; |
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.
You can probably get rid of shouldUsePkg. I think they are officially deprecated (just use dbus-python directly).
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.
It don't used outside of mixer, so if we move mixer to own app, we can drop dbus-python in main ffado.
Let me note here (too) that I think that some parts of `libOnly` are useful #39683 (comment) and that the problem, as I see it, is not only that `libOnly` can be implemented with multiple outputs, but that it also is not a use-flag, i.e. derivations that use it are not monoidal #39683 (comment) and monoidal derivations are FTW.
|
@oxij libOnly here is definelly not use-flag. Other question to all -- I had intention to split |
Some work, which already done kicked to own PRs, just updated this issue to keep progress tracking (still use it as WIP branch) |
What is the status of this pull request? |
@mmahut |
Thank you for your contributions.
|
Actually only pulseaudio refactoring pending, so I can close it |
Motivation for this change
Say "farewell" to long-lived ad-hoc hack, when we had two derivations for one package -- one for library-only version, second one with server/utils built.
See #14693 for problem history and details.
Done (Minimum to be done)
ffado-mixer
moved to own derivation, and included in PR above)Not sure about this two, my expertise can be not enough. If I fail to refactor them, I'll create separate issues
At least volunters for testing would be needed, I haven't any ffado compatible hardware, and can test stuff only for "just executed and shows version". Also I can't check darwin build myself.
I am sure, that is a mass-rebuild, so eventually this PR will be altered to be against staging. One of reasons, why I open PR early -- is prevend duplications of work, and use
ofborg
to look how much stuff affected.Things done
build-use-sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)