Has anybody been able to build a statically linked binary that shows a Vulkan surface? I’ve put some context around this problem in the video. I understand that the vulkan driver has to be loaded dynamically - so it’s more of a question whether a statically built app can reliably load and talk with it. I think it should be possible but haven’t actually seen anyone make it work. I’m aware of “static-window9” by Andrew Kelley but sadly it doesn’t work any more (at least on my Gentoo machine T_T).

(I’m also aware of AppImages but I don’t think they’re the “proper” solution to this problem - more like a temporary bandaid - better than Docker but still far from perfect)

  • 𝖒𝖆𝖋OP
    link
    fedilink
    22 months ago

    I think of demoscene, game jams, desktop pets and other sorts of small home-brew software written by & for small groups of people. There is nothing embarrassing about one-off programs. I understand that what you said is just a figure of speech and you don’t really think so (and thank you for a well thought comment) but it still makes me kind of sad to see this kind of shaming. It’s discouraging people from being creative.

    I’d say my bar is already low. A toy GUI program that draws a triangle and plays a sound should work on my friend’s machine (with a different set of system libraries) and it shouldn’t randomly break when OS update bumps some library version. AFAIK something like that would require a static binary (INTERP is a no-go) and an ability to dlopen stuff at runtime.

    Writing software that “just works” shouldn’t be as hard as it is.

    • @[email protected]
      link
      fedilink
      English
      02 months ago

      Sounds like flatpaks/appimages with extra steps

      Includes all dependencies? ✔️

      A single file? ✔️

      Independent of host libraries? ✔️

      Limited learning curve? ✔️

      Not sure how appimages handle it internally, but with flatpaks you can even be storage efficient with layers, whereas 100s of static binaries could contain an awful lot of duplicates.

      • @[email protected]
        link
        fedilink
        English
        1
        edit-2
        2 months ago

        Sounds like flatpaks/appimages with extra steps.

        I’m fairly sure the complexity of flatpak/appimage solutions are far more than the static linking of a binary (at least on non-glibc systems). Its often a single flag (Ex: -static) that builds the DLLs into the binary, not a whole container and namespace.

        • @[email protected]
          link
          fedilink
          English
          12 months ago

          So?

          Using the right build platform you could design a single flag to enable automatic appimage building as well.

          Just seems like a cleaner build environment to me, exactly what you’d want to gaurentee things remain distro agnostic