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

qubes-gui-agent might recommend, instead of depend on, pulseaudio? #2648

Closed
h01ger opened this Issue Feb 24, 2017 · 11 comments

Comments

Projects
None yet
4 participants
@h01ger

h01ger commented Feb 24, 2017

Qubes OS version (e.g., R3.2):

R3.2

Affected TemplateVMs (e.g., fedora-23, if applicable):

Debian templates, though probably others are similar

Expected behavior:

I want to have more minimal Debian templates, without pulseaudio installed.

This could be done, if qubes-gui-agent would not depend on pulseaudio, and only recommended it instead.

(I might also want even more minimal templates, also without qubes-gui-agent, but thats another story…)

Actual behavior:

I wanted to have more minimal Debian templates, so I tried to remove pulseaudio, which also prompted me to remove qubes-gui-agent

Steps to reproduce the behavior:

sudo apt remove pulseaudio

General notes:

Qubes is awesome :)

Related issues:

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Feb 24, 2017

Member

Related to #2572.
Probably not only require changing "depends" to "recommends" but also putting pulseaudio module into separate subpackage.

Member

marmarek commented Feb 24, 2017

Related to #2572.
Probably not only require changing "depends" to "recommends" but also putting pulseaudio module into separate subpackage.

@h01ger

This comment has been minimized.

Show comment
Hide comment
@h01ger

h01ger Feb 24, 2017

h01ger commented Feb 24, 2017

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Feb 24, 2017

Member

I'm not sure this useful/needed, even though this is cleaner: it will just move some bits to another package, say qubes-gui-agent-audio (or -pulseaudio?) but if this weren't done, those files would just be part if qubes-gui-agent package, without being used, but without harm too.

There is /etc/xdg/autostart/qubes-pulseaudio.desktop which would fail if pulseaudio is not there. Not a big problem, but far from clean solution. The best option is to move pulseaudio stuff (including that startup file and a script pointed by it) to a separate subpackage (is there any Debian naming convention for pulseaudio modules packages?), and have this subpackage depend on pulseaudio, preferably with explicit version, used to build the package, to avoid problems like #1927.

But then (actually in any case) we have a problem with upgrade path: recommended packages are not installed on upgrade, so if we want new (sub)package, it needs to be set at "depends". This also applies to template build process - where even the easier option of making pulseaudio itself as recommended, will break the build.
Without #2572 we can't get rid of hard dependency on pulseaudio (either directly or indirectly).

Member

marmarek commented Feb 24, 2017

I'm not sure this useful/needed, even though this is cleaner: it will just move some bits to another package, say qubes-gui-agent-audio (or -pulseaudio?) but if this weren't done, those files would just be part if qubes-gui-agent package, without being used, but without harm too.

There is /etc/xdg/autostart/qubes-pulseaudio.desktop which would fail if pulseaudio is not there. Not a big problem, but far from clean solution. The best option is to move pulseaudio stuff (including that startup file and a script pointed by it) to a separate subpackage (is there any Debian naming convention for pulseaudio modules packages?), and have this subpackage depend on pulseaudio, preferably with explicit version, used to build the package, to avoid problems like #1927.

But then (actually in any case) we have a problem with upgrade path: recommended packages are not installed on upgrade, so if we want new (sub)package, it needs to be set at "depends". This also applies to template build process - where even the easier option of making pulseaudio itself as recommended, will break the build.
Without #2572 we can't get rid of hard dependency on pulseaudio (either directly or indirectly).

@h01ger

This comment has been minimized.

Show comment
Hide comment
@h01ger

h01ger Feb 24, 2017

h01ger commented Feb 24, 2017

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Feb 24, 2017

Member

b.) document in the release notes that templates will loose sound unless
"$action is done"

I think this is ok. We do provide release-specific template upgrade instructions.

This also applies to template build process - where even the easier option of making pulseaudio itself as recommended, will break the build.
why do it break?

Because for example Whonix templates do not include "recommended" packages by default. This means Whonix Workstation will not have sound available.

Without #2572 we can't get rid of hard dependency on pulseaudio (either directly or indirectly).
what's hard about #2572? Seems straightforward to me?!

Yes, it's easy. Simply not done yet. Do you want to help? ;)

Member

marmarek commented Feb 24, 2017

b.) document in the release notes that templates will loose sound unless
"$action is done"

I think this is ok. We do provide release-specific template upgrade instructions.

This also applies to template build process - where even the easier option of making pulseaudio itself as recommended, will break the build.
why do it break?

Because for example Whonix templates do not include "recommended" packages by default. This means Whonix Workstation will not have sound available.

Without #2572 we can't get rid of hard dependency on pulseaudio (either directly or indirectly).
what's hard about #2572? Seems straightforward to me?!

Yes, it's easy. Simply not done yet. Do you want to help? ;)

@h01ger

This comment has been minimized.

Show comment
Hide comment
@h01ger

h01ger Feb 24, 2017

h01ger commented Feb 24, 2017

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Feb 24, 2017

Member

It's just unclear what's really needs to be done for #2572 (which part needs fixing)

Because without #2572 we don't have easy way to introduce/alter dependencies. While release notes is one way of doing this, it doesn't scale well (we'd like to simplify upgrade process, not make it more complex). If we're going to place a point "manually install X, Y and Z" there, let make it the last time.
Also, not having #2572 make it impossible to have different packages set for different releases. This is why it is impossible to build Debian template for R3.1 right now (there was no qubes-mgmt-salt-vm-connector package in R3.1, but is on the list for R3.2).

As for Whonix - yes, but lets make it more explicit. If Whonix is not going to install qubes-vm-recommended, make it easier to check what it really means (and possible install subset of it by Whonix-specific dependency). Currently not installing recommended packages means you need inspect every package to see what really was missed - and periodically check if that list have changed.

As for using "depends" instead of "recommends" see #2572 (comment). In short: qubes-vm-recommended should "depend" on those recommended packages.

Member

marmarek commented Feb 24, 2017

It's just unclear what's really needs to be done for #2572 (which part needs fixing)

Because without #2572 we don't have easy way to introduce/alter dependencies. While release notes is one way of doing this, it doesn't scale well (we'd like to simplify upgrade process, not make it more complex). If we're going to place a point "manually install X, Y and Z" there, let make it the last time.
Also, not having #2572 make it impossible to have different packages set for different releases. This is why it is impossible to build Debian template for R3.1 right now (there was no qubes-mgmt-salt-vm-connector package in R3.1, but is on the list for R3.2).

As for Whonix - yes, but lets make it more explicit. If Whonix is not going to install qubes-vm-recommended, make it easier to check what it really means (and possible install subset of it by Whonix-specific dependency). Currently not installing recommended packages means you need inspect every package to see what really was missed - and periodically check if that list have changed.

As for using "depends" instead of "recommends" see #2572 (comment). In short: qubes-vm-recommended should "depend" on those recommended packages.

@adrelanos

This comment has been minimized.

Show comment
Hide comment
@adrelanos

adrelanos Feb 24, 2017

Member
Member

adrelanos commented Feb 24, 2017

@h01ger

This comment has been minimized.

Show comment
Hide comment
@h01ger

h01ger Feb 24, 2017

h01ger commented Feb 24, 2017

@adrelanos

This comment has been minimized.

Show comment
Hide comment
@adrelanos

adrelanos Feb 24, 2017

Member
Member

adrelanos commented Feb 24, 2017

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek May 30, 2017

Member

As for Recommends: in rpm packages: https://fedoraproject.org/wiki/PackagingDrafts/WeakDependencies
Especially, almost useless until "implement plugin: when package is removed then it will added to recommend exclude set and will not be pulled in when another package recommends it during installation" got implemented. Otherwise, updating qubes-gui-agent would re-install pulseaudio-qubes.

Member

marmarek commented May 30, 2017

As for Recommends: in rpm packages: https://fedoraproject.org/wiki/PackagingDrafts/WeakDependencies
Especially, almost useless until "implement plugin: when package is removed then it will added to recommend exclude set and will not be pulled in when another package recommends it during installation" got implemented. Otherwise, updating qubes-gui-agent would re-install pulseaudio-qubes.

@qubesos-bot qubesos-bot referenced this issue in QubesOS/updates-status May 30, 2017

Closed

gui-agent-linux v4.0.0 (r4.0) #62

marmarek added a commit to marmarek/old-qubes-gui-agent-linux that referenced this issue Jun 9, 2017

@qubesos-bot qubesos-bot referenced this issue in QubesOS/updates-status Jun 9, 2017

Closed

gui-agent-linux v4.0.1 (r4.0) #69

marmarek added a commit to marmarek/old-qubes-gui-agent-linux that referenced this issue Jun 10, 2017

@qubesos-bot qubesos-bot referenced this issue in QubesOS/updates-status Jun 10, 2017

Closed

gui-agent-linux v4.0.2 (r4.0) #76

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment