This has some advantages:
- Removes the conditional compilation requirement, which makes testing easier.
- Allows all distributed versions of Settings to have snap support without them supporting snapd-glib.
- Makes it faster to update Settings for Snap features without waiting on snapd-glib releases.
Note that the snap support is only invoked if you have snaps installed.
- Some additional code in Settings. This is manageable as Settings doesn't need much snap information. libsoup2 didn't support HTTP over Unix domain sockets and would have been too much to support in Settings. libsoup3 does support this which makes this possible.
- We no longer share code with snapd-glib, so any future changes will have to be made in multiple places. snapd has a stable API and multiple active clients so this is not likely to be a major concern.