I created a script that always installs apps from their official source

https://github.com/Tsu-gu/appfetch/

It’s a proof of concept of an idea I had a while ago. I dislike having to hunt down apps for my Linux machine when I want them from an official source. Some apps are packages as tarballs, some as .debs, some as install scripts that download a binary, some are flatpaks and snaps.

I created a yaml file with only verified apps from flathub and snapcraft, and added a few apps outside of them that I could think of.

The ultimate goal is the user just typing the names of what they want, and the script will just get it. They shouldn’t waste time with picking the right source.

  • I like this idea, but with the increase in supply chain attacks, I’m reluctant to use it. I’ve been much more reticent about installing from AUR, and my use of github projects has drastically slowed down since I now feel as if I have to read all the source code for everything I get.

    I’ve sandboxed programs before, and I may just start making that standard practice, but still… it makes me angry. It’s, like: this is why we can’t have nice things. There are precious few OSS supply chain static code analysis tools, and there are a lot of languages I don’t know well enough to review, or which have such broad or deep dependency trees that it’s more work than it’s worth. The most frustrating is the dampening effect it’s having on OSS. It only pushes people to only use programs from big commercial companies.

    Anyway, none of that is directly related to your program, which is really cool. Sadly, if there aren’t any positive developments in the OSS ecosystem for attacking the supply chain problem, cool projects like this are not going into my toolbox.

    • tsugu@slrpnk.netOP
      link
      fedilink
      arrow-up
      4
      ·
      4 hours ago

      That’s understandable. Truth be told I probably wouldn’t trust this either if I didn’t make it. Anything can be hiding in the custom field.

      • Now I’m wondering, if it were bundled with an OCI sandboxing system, that would address my issues with Flatpack and Snap. Technology has moved on and Flatpack has stagnated, and Snap’s just an attempt to centralize control and distribution. It’s time for a redesign, specifically focusing on supply chain attacks, with sandboxing all the way down.

  • redlemace@lemmy.world
    link
    fedilink
    arrow-up
    26
    arrow-down
    1
    ·
    7 hours ago

    I like the idea ! And looked at the project on github. But … snap disgust me so much more than searching the right source, i’m not adapting to it. But still nice thinking!

      • Entheon@lemmy.world
        link
        fedilink
        English
        arrow-up
        7
        ·
        7 hours ago

        Maybe add something in the search results to indicate the app’s origin? Or even just a way to choose search sources?

        • tsugu@slrpnk.netOP
          link
          fedilink
          arrow-up
          5
          arrow-down
          3
          ·
          7 hours ago

          I understand that people treat snap as if it was a contagious virus but the developers chose the method purposely. A lot of KDE apps are only distributed as snaps for example, k3b comes to mind. VLC as well.

          There are flatpak versions but they aren’t official, which defeats the point a bit.

          I do however plan to somehow add the ability to prefer flatpak, since a few of the entries have both a flatpak and snap field.

  • Ulrich@feddit.org
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    1
    ·
    7 hours ago

    Sounds like Obtainium on Android.

    The thing that concerns me is that it downloads an unofficial source.

    • tsugu@slrpnk.netOP
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      6 hours ago

      Those are all official sources tho, but you have to trust me not to put in malicious commands of course.

      • Ulrich@feddit.org
        link
        fedilink
        English
        arrow-up
        5
        arrow-down
        1
        ·
        6 hours ago

        Oh so you are essentially personally maintaining the sources list?

        • tsugu@slrpnk.netOP
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          6 hours ago

          Yep. I did automate it the best I could (I’m not creating entries for thousands of apps manually) but it will indeed require manual maintenance as the apps will change their installation methods over time.

  • jevans ⁂@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 hours ago

    Genuine question: Why would I use this as opposed to Nix? Between nixpkgs and the NUR, there are an insane amount of packages available, and you can build everything from source if you wish.

    • tsugu@slrpnk.netOP
      link
      fedilink
      arrow-up
      3
      ·
      5 hours ago

      It’s meant for people who prefer their apps from the official sources rather than repackaged. All this script dies is make it easy so you don’t have to google the app’s name and search for an install method on its website.

        • tsugu@slrpnk.netOP
          link
          fedilink
          arrow-up
          4
          ·
          edit-2
          5 hours ago

          If you want to build from source, this brings nothing of value. Nix has pretty much everything.

          • jevans ⁂@lemmy.ml
            link
            fedilink
            English
            arrow-up
            4
            arrow-down
            1
            ·
            5 hours ago

            with that being the case, correct me if I’m wrong, but your pitch is that users should trust your manually compiled and maintained commands to install things because you’re guaranteeing that the binaries being installed by your commands are from official sources, and that is better (in at least some cases) than cached binaries from something like nixpkgs, where the trust we are asked to give is that the cache is built correctly from source.

            • tsugu@slrpnk.netOP
              link
              fedilink
              arrow-up
              2
              arrow-down
              1
              ·
              edit-2
              5 hours ago

              I like to get software directly from the developers, and this just makes it easier. I don’t want to compile anything, and I don’t mind any of the package formats. I just don’t like that every app uses a different one so it’s a pain in the ass to install them.

              Whether you trust the list not to execute malicious commands is up to you.

  • MrSoup@lemmy.zip
    link
    fedilink
    arrow-up
    2
    ·
    6 hours ago

    I think that using some “custom” package names for internal args is not the best choice.

    Anyway, later I’ll take a better look at it and probably contribute to it. Ty

    • tsugu@slrpnk.netOP
      link
      fedilink
      arrow-up
      1
      ·
      6 hours ago

      Could you elaborate? I’m not the best programmer so I’m open to suggestions.

      • MrSoup@lemmy.zip
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        6 hours ago

        I saw that “version” and “update” are inside apps.yaml instead inside the program itself like “search”. I see why version helps to be there which gets updated with the list, but the update link looks more like a quirk to be inside apps list. And it would make sense to distinguish program version and apps list version.

        • tsugu@slrpnk.netOP
          link
          fedilink
          arrow-up
          2
          ·
          6 hours ago

          That’s a good point. I will also probably need a better update method than rm -rf-ing the files and replacing them with each update.