• 270 Posts
  • 326 Comments
Joined 2 years ago
cake
Cake day: June 14th, 2023

help-circle












  • The ffmpeg from Flathub is a “runtime” package, intended to be used by other flatpak apps. It’s not meant for CLI use.

    Flatpak apps are not added to your $PATH. They’re run with flatpak run appID. Though again, ffmpeg is not an app so it cannot be run this way. Though technically you could use it for CLI use by doing something like flatpak run --command=sh org.mozilla.firefox. This will open a shell inside the flatpak environment, which can use the ffmpeg flatpak runtime.

    Though now that I think about it, it would be fun to create my own flatpak package for ffmpeg for CLI use. Should be pretty simple, it would just be a mostly empty package that relies on the ffmpeg-full flatpak runtime. Edit: and I did

    Screenshot of my ffmpeg flatpak

    The manifest is simply

    id: my.custom.ffmpeg
    runtime: org.freedesktop.Platform
    runtime-version: '24.08'
    sdk: org.freedesktop.Sdk
    add-extensions:
      org.freedesktop.Platform.ffmpeg-full:
        directory: lib/ffmpeg
        version: '24.08'
        add-ld-path: .
    command: ffmpeg
    modules:
      - name: ffmpeg-wrapper
        buildsystem: simple
        build-commands:
          - mkdir -p /app/lib/ffmpeg
          - install -Dm755 ffmpeg.sh /app/bin/ffmpeg
        sources:
          - type: script
            dest-filename: ffmpeg.sh
            commands:
              - /usr/bin/ffmpeg "$@"
    finish-args:
        - --filesystem=host
    






  • You’re just adding arguments on arguments that aren’t making any sense now. You’re original comment and understanding has been addressed.

    My main point is that I’m worried about additional complexity. On most atomic distros, you’re not supposed to touch the base system, so various tools are preinstalled or available: flatpak, podman, homebrew, snap, appimages, systemd sysext.

    The BSDs seem to enjoy a separation of OS and user packages with reduced complexity. Though their task is easier since they are complete operating systems, whereas linux is just a kernel and many different projects put together, and many different groups putting out their own distros with varying packages and compatibility.

    Both RPM and dpkg support being able to unpackaged or install packages into your local home directory

    These don’t seem to be advertised features. More like hacky workarounds. Complex rpm commands. Ubuntu thread with various proposed solutions.

    It would be really cool if dnf and apt got good, easy, simple support for installing packages into the home folder. But that’s not what’s happening. The proposed solution seems to be systemd sysext, which again, prompted me to have worries about complexities about how software is being managed on more “modern” distributions.

    You’re just adding arguments on arguments that aren’t making any sense now. You’re original comment and understanding has been addressed

    And I keep discussing it because I enjoy doing so.



  • Thats not what I’m saying.

    My first point is that homebrew is only good for CLI applications. Almost no GUI apps are available, the only one I know of is xeyes.

    My second point is that homebrew is unsanboxed. That’s good for programs that don’t work well sandboxed, such as fetch tools like fastfetch.

    This leaves a gap of a good supported way to install GUI apps that are unsandboxed. I used to need this when I used an Android phone with a custom OS. I needed to have unsandboxed Chromium with adb tools to flash and update the OS. However, when sandboxed, Chromium doesn’t have access to adb tools.




  • You’re not really “managing” the OS files, you’re just applying patches and upgrading to new releases. All the interesting stuff (from the user perspective) is done using pkg on FreeBSD and pkg_* on OpenBSD; it’s with those you install your packages like the DE/WM, web browser, CLI tools, etc.

    There’s a couple of benefits to splitting these. Makes it easier to “reset” the system to its default state and makes it impossible to accidentally break the OS (you can’t accidentally remove any critical components like the kernel).



  • I’m not sure what you mean with the update tooling having some “clear separation of OS from these packages”, but maybe you want to try and expand on that a bit

    On FreeBSD and OpenBSD, OS upgrades are handled by the freebsd-update and syspatch commands respectively. User package installs are handled by the pkg and pkg_* commands respectively.

    The pkg tools do not touch the base OS. That also helps avoiding issues like uninstalling critical system packages and makes it easier to wipe the system to a “clean” state, undoing user modifications.

    It’s hard to succinctly describe the difference between BSD and Linux, but essentially, in BSD the OS is everything: kernel, tools, extensions…etc

    It also certainly helps that neither FreeBSD or OpenBSD comes with desktop environments by default. That muddies the water of what is an OS package and what is a user package. If desktop environments were treated as OS packages, then it would not be possible for the users to uninstall the DE apps.