• rtxn@lemmy.worldM
    link
    fedilink
    arrow-up
    20
    ·
    edit-2
    22 hours ago

    That’s not the full picture.

    The proprietary store backend really isn’t consequential. Most websites are, and if you have a modern computer, you’ve got proprietary firmware running at ring -3. At best, it’s a distraction from Snap’s real issues.

    Snap packages are compressed filesystems, similar to squashfs. When an application is started for the first time, the filesystem has to be decompressed and mounted to the root filesystem, which (depending on the computer) can take a long time. It also litters your mount points with loopback devices.

    Snap’s sandboxing only works on systems running Systemd. No Devuan, no Artix, no Alpine; the packages will work, but without sandboxing.

    The worst part is Canonical’s desperate attempts to make snaps happen.

    …and I’m sure there’s more that I’m forgetting about.

    • Morphit @feddit.uk
      link
      fedilink
      arrow-up
      2
      ·
      22 hours ago

      They haven’t modified apt; they abuse an extra version number that supercedes the major version number of a package. I think it’s meant to be used for new packages that reuse the name of an abandoned project. Canonical publish packages for software like Firefox that depend on snapd and just run snap install firefox instead of actually installing anything. Since they bumped that extra version number, their packages always have a higher precedence than even the officially packaged debs from Mozilla.

      • rtxn@lemmy.worldM
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        22 hours ago

        Thanks, that’s even more fucked up.

        What’s even even more fucked up is that the package still installs an executable to /usr/bin/firefox, but it’s just a wrapper script that launches the Snap application… and also replaces your desktop shortcuts, application launcher shortcuts, and favourites with its own Reforged Edition file if you’re running GNOME, Unity, MATE, or KDE Plasma.

        Excerpt from /usr/bin/firefox Canonical Edition(TM)
        # [...]
        
        # GNOME Shell
        OLD="firefox.desktop"
        NEW="firefox_firefox.desktop"
        FAVS=$(gsettings get org.gnome.shell favorite-apps 2> /dev/null)
        if echo "$FAVS" | grep -q "'$OLD'"; then
          NEWFAVS=$(echo $FAVS | sed -e "s#'$OLD'#'$NEW'#")
          gsettings set org.gnome.shell favorite-apps "$NEWFAVS"
        fi
        
        # MATE
        OLD="/usr/share/applications/firefox.desktop"
        NEW="/var/lib/snapd/desktop/applications/firefox_firefox.desktop"
        OBJECTS=$(gsettings get org.mate.panel object-id-list 2> /dev/null)
        for object in $OBJECTS; do
          object=$(echo $object | cut -d\' -f2)
          launcher=$(gsettings get org.mate.panel.object:/org/mate/panel/objects/$object/ launcher-location)
          if [ "$launcher" = "'$OLD'" ]; then
            gsettings set org.mate.panel.object:/org/mate/panel/objects/$object/ launcher-location "'$NEW'"
          fi
        done
        
        # [...]
        
        # TODO: handle other desktop environments
        
        exec /snap/bin/firefox "$@"
        

        I’d classify that as malware.