Closed muggenhor closed 1 year ago
Thanks for the contribution! This looks like a good change.
As far as I can tell, software-properties-gtk
is the only package that depends (requires) on ubuntu-advantage-desktop-daemon
.
I don't suppose you (or someone else) has already tested software-properties-gtk
to see if it still functions without ubuntu-advantage-desktop-daemon
installed? Or do we need to patch software-properties-gtk
, similar to how we did for update-manager
?
software-properties-gtk
fails already without ubuntu-advantage-tools
, in a similar way as update-manager
. It doesn't appear to depend on the daemon at all (at least not directly).
$ software-properties-gtk
Traceback (most recent call last):
File "/usr/bin/software-properties-gtk", line 37, in <module>
from softwareproperties.gtk.SoftwarePropertiesGtk import SoftwarePropertiesGtk
File "/usr/lib/python3/dist-packages/softwareproperties/gtk/SoftwarePropertiesGtk.py", line 57, in <module>
from .UbuntuProPage import UbuntuProPage
File "/usr/lib/python3/dist-packages/softwareproperties/gtk/UbuntuProPage.py", line 27, in <module>
from .DialogUaAttach import DialogUaAttach
File "/usr/lib/python3/dist-packages/softwareproperties/gtk/DialogUaAttach.py", line 25, in <module>
from uaclient.api.u.pro.attach.magic.initiate.v1 import initiate
ModuleNotFoundError: No module named 'uaclient'
So that's a separate issue from what this PR does. I do think it's possible to solve both problems in a better way than patching the code though: provide a NOP-implementation of uaclient
that provides NOP versions of the imported functions/types as part of this "fake" pkg.
I don't think patching is ideal (compared to just installing a package). But at least it works. I've created #6 for that.
Thanks! With the information you have provided, I plan to approve this PR regardless once I get a chance to test it locally.
I do think it's possible to solve both problems in a better way than patching the code though: provide a NOP-implementation of uaclient that provides NOP versions of the imported functions/types as part of this "fake" pkg.
This seems like a great idea! Having to maintain manual patches is something that seems likely to unexpectedly break in future at some upstream update point. If you or someone else would like to tackle a NOP implementation in future, a PR would be welcome with this feature.
(Ideally (but not required) whatever method we use to NOP these would not create a new dependency on other non-typical packages though, as it might be a bit strange for a user to have to pull in a whole bunch of new dependent packages for our 'fake' package.)
Merged, thanks again
And provide a version with maximum epoch value to reduce the likelihood of this ever being overruled.