Failing auto-connect to gnome-42-2204

Hi,

our current package does not make automatic connection to gnome-42-2204 and due to that it’s not possible to run it because destop-launch is missing:

Content snap command-chain for /snap/vivaldi/3/gnome-platform/command-chain/desktop-launch not found: ensure slot is connected

This is fixed by connecting to gnome-42-2204 by hand, but that should not be necessary (that should auto-connect, we’re using gnome extension in that snap package)

I don’t think this is fixable on my side, from what I read here and here maybe it’s something that has to be fixed on the snapcraft/canonical side?

thank you,

Filip

The interface connection to gnome-42-2204 is implied as being implicit on the gnome extension page, what can I do on our side to make that connection automatic?

For reference, this is our snapcraft.yaml

name: vivaldi
version: 6.7.3329.39
summary: Vivaldi Browser - Feature-packed web browser
description: |
    The web browser for techies and people who need a browser that helps them get things done.
    The user interface is fully customizable, including keyboard shortcuts, mouse gestures, and programmable macros.

    NOTE: This package is maintained by but not yet officially endorsed or supported by Vivaldi Technologies.
confinement: strict
license: Proprietary
type: app
website: https://vivaldi.com
grade: stable
base: core22
icon: vivaldi_icon.png
compression: xz
adopt-info: vivaldi

architectures:
- build-on: amd64
  build-for: amd64
- build-on: amd64
  build-for: arm64
- build-on: amd64
  build-for: armhf

apps:
  vivaldi:
    extensions: [gnome]
    command: bin/vivaldi.launcher
    common-id: com.vivaldi.Vivaldi
    desktop: usr/share/applications/vivaldi.desktop
    plugs:
      - audio-playback
      - audio-record
      - bluez
      - browser-sandbox
      - camera
      - cups
      - desktop
      - desktop-legacy
      - hardware-observe
      - home
      - joystick
      - mount-observe
      - mpris
      - network
      - network-bind
      - network-manager
      - opengl
      - password-manager-service
      - raw-usb
      - removable-media
      - screen-inhibit-control
      - shmem
      - system-packages-doc
      - u2f-devices
      - upower-observe
      - wayland
      - x11

plugs:
  browser-sandbox:
    interface: browser-support
    allow-sandbox: true
  shmem:
    interface: shared-memory
    private: true
  chromium-ffmpeg-115016:
    interface: content
    target: $SNAP
    default-provider: chromium-ffmpeg

parts:
  vivaldi:
    plugin: dump
    after:
      - launcher
    source: https://downloads.vivaldi.com/stable/vivaldi-stable-$SNAPCRAFT_PROJECT_VERSION-$CRAFT_ARCH_BUILD_FOR-binsrc.tar.gz
    source-type: tar
    stage-packages:
      - libsecret-1-0
      - libatk1.0-0
      - libatspi2.0-0
      - libcairo2
      - libcups2
      - libcurl3-gnutls
      - libdbus-1-3
      - libdrm2
      - libexpat1
      - libgbm1
      - libglib2.0-0
      - libgtk-3-0
      - libnspr4
      - libnss3
      - libpango-1.0-0
      - libu2f-udev
      - libvulkan1
      - libx11-6
      - libxcb1
      - libxcomposite1
      - libxdamage1
      - libxext6
      - libxfixes3
      - libxkbcommon0
      - libxrandr2
      - wget
      - xdg-utils
      - libasound2
      - libgl1
    override-build: |
      snapcraftctl build
      chmod 755 $CRAFT_PART_INSTALL/opt/vivaldi/vivaldi-sandbox
    parse-info: [usr/share/appdata/vivaldi.appdata.xml]

  launcher:
    plugin: dump
    source: launcher
    organize:
      '*': bin/

I think you might be running into the same issue as Opera’s recently had:

Your snap currently has:

plugs:
  browser-support:
    allow-auto-connection: true
  content:
    allow-auto-connection:
      -
        plug-attributes:
          content: $SLOT(content)
        slot-attributes:
          content: chromium-ffmpeg-115016
        slot-snap-id:
          - XXzVIXswXKHqlUATPqGCj2w2l7BxosS8

So I think in this case, the Store team need to do as was done for Opera and grant an override to make the Gnome snaps autoconnect properly, since they’re effectively at conflict with the ffmpeg overrides.

Whilst unrelated to your issue, I’d really encourage you to swap compression: xz to compression: lzo, whilst it uses a fair bit more disk usage, the launch speeds of your browser will be significantly impacted on lower resource machines with xz. Almost all new desktop orientated snaps will be using LZO leaving XZ primarily for IOT where disk space is at a premium.

Otherwise, once you have the gnome extension autoconnecting, I’d personally also recommend re-assessing your stage packages list, e.g, - libgtk-3-0 wouldn’t be needed because the Snap already has it via the extension. This would let you trim down the filesize but more importantly avoids duplicating potentially incompatible libraries (not so much a problem with GTK3 these days, but in GTK4 for example, the repo versions will likely be older than the extension versions, and this is implicitly asking to mix both).

Thank you @James-Carroll, that is a great feedback and I will work those in shortly :+1: I hope to hear from snap team regarding the autoconnection - I agree with you it seems very similar to Opera’s situation, so I was hoping to get help from the team :slight_smile:

3 Likes

Hey @vivaldi

Your snap should be now auto-connecting to gnome-42-2204 content snap. Please confirm if it works as expected.

Thanks

1 Like

Hi @jslarraz

Thank you for the fix. Indeed, the connection to gnome-42-2204 is indeed now automatic.

As a side note - I am not getting automatic connection for chromium-ffmpeg-115541 for the new release I am working on (it is working for the old one though) - we got automatic connection granted for the previous one (chromium-ffmpeg-115016)… Do I understand right… we are to request the automatic connection again every time the interface number changes?

(I’ve created a new store request for this auto connection)

Thank you and have a nice weekend