Skip to content
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

Pull in required Pipewire dependencies for Archlinux #224

Merged
merged 1 commit into from
Jan 26, 2025

Conversation

alimirjamali
Copy link
Contributor

@marmarek
Copy link
Member

no comas

@marmarek
Copy link
Member

and also, is pipewire-alsa really needed?

@alimirjamali
Copy link
Contributor Author

and also, is pipewire-alsa really needed?

I excluded pipewire-jack as it is seldom used. But pipewire-alsa might be used by more users.

@alimirjamali alimirjamali force-pushed the issue-9660-archlinux-pipewire branch from f115fe8 to 6768686 Compare January 22, 2025 17:18
@marmarek
Copy link
Member

The thing is, with pipewire-qubes you talk to dom0 (or other audiovm), not to devices directly. pipewire-alsa might be relevant for sys-audio, but there you don't really need pipewire-qubes, so it isn't the best place to put such dependency

@alimirjamali alimirjamali force-pushed the issue-9660-archlinux-pipewire branch from 6768686 to a25064a Compare January 22, 2025 18:56
@alimirjamali
Copy link
Contributor Author

The thing is, with pipewire-qubes you talk to dom0 (or other audiovm), not to devices directly. pipewire-alsa might be relevant for sys-audio, but there you don't really need pipewire-qubes, so it isn't the best place to put such dependency

Well said. I removed pipewire-alsa from the PR.

@marmarek
Copy link
Member

CI says:

14:02:10 [qb.gitlab-installv2] resolving dependencies...
14:02:10 [qb.gitlab-installv2] error: unresolvable package conflicts detected
14:02:10 [qb.gitlab-installv2] error: failed to prepare transaction (conflicting dependencies)
14:02:10 [qb.gitlab-installv2] looking for conflicting packages...
14:02:10 [qb.gitlab-installv2] :: pipewire-pulse-1:1.2.7-1 and pulseaudio-17.0+r43+g3e2bb8a1e-1 are in conflict

It looks like something more is needed for clean upgrade. Maybe add conflict with pulseaudio here too? Or add pulseaudio to replaces list? I'm not exactly sure about semantics of various dependencies types in Arch - besides clean upgrade, this also should avoid unintended side effects like pretending that pipewire-qubes provides pulseaudio...

@qubesos-bot
Copy link

qubesos-bot commented Jan 22, 2025

OpenQA test summary

Complete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025012615-4.3-archlinux&flavor=templates

Test run included the following:

New failures, excluding unstable

Compared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2024111705-4.3&flavor=update

Failed tests

11 failures

Fixed failures

Compared to: https://openqa.qubes-os.org/tests/119126#dependencies

1 fixed
  • system_tests_extra
    • TC_00_QVCTest_whonix-gateway-17: test_010_screenshare (failure)
      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 0 == 0

Unstable tests

@alimirjamali
Copy link
Contributor Author

Or add pulseaudio to replaces list?

I did this, hopefully it solves the issue this time.

@marmarek
Copy link
Member

CI here still complains...

@alimirjamali
Copy link
Contributor Author

CI here still complains...

Shouldn't we expect it? Since the other change for meta-packages is still not merged. And qubes-vm-dependencies still depends on qubes-vm-pulseaudio. Which itself depends on pulseaudio.

@marmarek
Copy link
Member

I don't think qubes-vm-dependencies is installed in this test docker...

@marmarek
Copy link
Member

@alimirjamali
Copy link
Contributor Author

1st of all, I am not an Archlinux packaging expert, or a Docker expert. I am sorry if I am making more or less wild guesses here.

2nd of all, in makedepends, I see both pulseaudio and pipewire are installed? Is this normal? Why requiring the main packages for building rather than their libraries.

@alimirjamali alimirjamali force-pushed the issue-9660-archlinux-pipewire branch from 6367763 to 4b95ff1 Compare January 23, 2025 14:33
@marmarek
Copy link
Member

2nd of all, in makedepends, I see both pulseaudio and pipewire are installed? Is this normal? Why requiring the main packages for building rather than their libraries.

This package include agents for both pipewire and pulseaudio - in separate sub-packages. But yes, only libraries should be needed, if they are in separate packages in Arch.

That said, maybe the CI issue is more fundamental here - I think it tries to install all subpackages at once, which will include both pipewire and pulseaudio agents... I see there is CI_INSTALL_EXCLUDE set to pulseaudio-qubes here, but the Arch package is named qubes-vm-pulseaudio...

@alimirjamali alimirjamali force-pushed the issue-9660-archlinux-pipewire branch from 4b95ff1 to 0334509 Compare January 23, 2025 14:55
@marmarek
Copy link
Member

Try adding qubes-vm-pulseaudio to CI_INSTALL_EXCLUDE in .gitlab-ci.yml

@alimirjamali alimirjamali force-pushed the issue-9660-archlinux-pipewire branch from 0334509 to a68dd20 Compare January 23, 2025 15:28
@alimirjamali
Copy link
Contributor Author

alimirjamali commented Jan 23, 2025

Try adding qubes-vm-pulseaudio to CI_INSTALL_EXCLUDE in .gitlab-ci.yml

Ok. CI Tests are all green. I also replaced pulseaudio<=17.0+r43+g3e2bb8a1e with libpulse<=17.0+r43+g3e2bb8a1e in the make dependencies. And assured qubes-vm-pulseaudio would also replace pipewire-qubes.

The OpenQA tests will be performed in the background?

@marmarek
Copy link
Member

openQA complains: https://openqa.qubes-os.org/tests/126666#step/update2/64
So, automatic update doesn't work. I guess interactive would, if one would answer "y" to that prompt...

@marmarek
Copy link
Member

marmarek commented Jan 24, 2025

I confirm that manual update works, if one answers "y" for the question of removing pulseaudio. But then, on the next update, pacman proposes to switch back to qubes-vm-pulseaudio!
https://openqa.qubes-os.org/tests/126716#step/update_post_templates/26

@alimirjamali alimirjamali force-pushed the issue-9660-archlinux-pipewire branch from a68dd20 to d2865ca Compare January 24, 2025 05:13
@alimirjamali
Copy link
Contributor Author

I confirm that manual update works, if one answers "y" for the question of removing pulseaudio. But then, on the next update, pacman proposes to switch back to qubes-vm-pulseaudio! https://openqa.qubes-os.org/tests/126716#step/update_post_templates/26

This should have been my mistake. It should be fixed now.

@alimirjamali
Copy link
Contributor Author

PipelineRetryFailed

1 similar comment
@alimirjamali
Copy link
Contributor Author

PipelineRetryFailed

@alimirjamali
Copy link
Contributor Author

I confirm that manual update works, if one answers "y" for the question of removing pulseaudio. But then, on the next update, pacman proposes to switch back to qubes-vm-pulseaudio! https://openqa.qubes-os.org/tests/126716#step/update_post_templates/26

@marmarek The last OpenQA report is from yesterday. Is it after or before my last amendment?

@marmarek
Copy link
Member

@marmarek The last OpenQA report is from yesterday. Is it after or before my last amendment?

tl;dr before

You can always check by looking at the top of the report - list of the PRs include link to exact commit that was tested. Similarly, when looking that openQA job, in the "settings" tab the PULL_REQUEST entry has exact commit ID that is being tested for each PR.

@marmarek
Copy link
Member

ok, I think I found a solution, ugly one, but works:
Before the update run pacman -Rdd pulseaudio. This removes pulseaudio ignoring dependencies. And the update will install pipewire-pulse. I haven't found any method to do that in a single operation, which is not ideal, since if the update fails, it will leave the template without either pulseaudio backend... But then, re-running the update should fix it, so I guess it's okay-ish.

@marmarek marmarek merged commit d2865ca into QubesOS:main Jan 26, 2025
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Arch: pulseaudio (17.0+r43+g3e2bb8a1e-1) breaks dependency 'pulseaudio<=17.0' required by qubes-vm-pulseaudio
3 participants