Merge ~sylvain-pineau/checkbox-core-snap:add-udisk-services into checkbox-core-snap:master
Status: | Rejected |
---|---|
Rejected by: | Sylvain Pineau |
Proposed branch: | ~sylvain-pineau/checkbox-core-snap:add-udisk-services |
Merge into: | checkbox-core-snap:master |
Diff against target: |
134 lines (+90/-0) 3 files modified
services/udiskie.sh (+25/-0) services/udisksd.sh (+11/-0) snap/snapcraft.yaml (+54/-0) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jonathan Cave (community) | Needs Information | ||
Review via email: mp+386839@code.launchpad.net |
Description of the change
New udisks services for our checkbox core snaps
Why we need them?
- on UC and US, there's no udisks2 service and no file manager to mount removable storage
- w/o udisks2 it's almost impossible to test usb2 and usb3 separately at their expected speeds
Tested so far on classic desktop (amd64/focal), classic US (arm64/focal), core20 (amd64). all with good results.
On classic US, the checkbox core snap must be installed with --devmode since the udisks2 interface was not meant to be used on classic, support is not the same as on UC (e.g. missing permissions).
The checkbox-
On classic desktop, with an already running udisks service, ours won't run and udiskie won't start. Both services will stay in a failed state, that's expected.
On core, checkbox core snaps are automatically installed via the content interface and the udisks2 interface should do its job. So no devmode required for those snaps. Similarly to the bluez/MM jobs requiring the invoking user to be root (and not via sudo) getting access to the Udisks2 system bus will only be possible from the checkbox slave (it runs as root). other option for local runs, start checkbox with sudo checkbox-
I haven't tested yet older core releases. Ideally I'd prefer to land this MR, get series16/18 rebased and check edge jobs in our CI.
"Both services will stay in a failed state, that's expected" - I don't like this result as it implies something is broken - could the service files / wrappers or something be modified so the result is not "failed"? We have tests that run in some circumstances to test explicitly that there are no failed services, we can't cause our own tests to fail.
I'm not sure how I feel about declaring the services on the checkbox-core-snap - so far this has only been a source of content shared in to the checkbox-<project> snap. It does not run anything and has no need to worry about other plugs etc and whether they are connected. So this is quite a change to the features of the snap.
Some thought is also needed about how the connection of the plugs actually happens. This could mean changing documentation, it could also raise the point about whether the plugs can be autoconnected.