@warpfork

i need to ship applications on linux

it's weirdly hard

i need to ship applications on linux

i want one answer

not count(distros) answers

shipping on linux: challenges

  • shared libraries == fragility, portability fail
  • library paths need to be absolute
  • above two compound: now nearly unsolvable

These problems are SO BAD that it pushes
everyone into shipping Electron apps, in desperation, because it's the only thing that "works"...

i need to ship applications on linux

zapps unfsck this.

GOALS

  1. Want one answer.
    No "it depends".
     
  2. Must work on any host -- no host lib deps; no conflicts
     
  3. Work on any install path.  Even if unpredictable.
     
  4. No "post-install" steps.
    Work even on RO mounts.

High level:

... And in
   practice:

  1. Dynamic linking.
    Need it for Reasons.
     
  2. Want: able to dedup
    libraries on disk
    (if something else has exact same version.)

Demo Time

<RANT>

How???

  • rpath
    • $ORIGIN
    • XORIGIN
  • lib bundling
  • ELF-interp-as-lib
  • jumploader

</RANT>

(wasn't that fun?)

The simplest thing that works

and nothing more

The simplest thing that works

and nothing more

We produced this solution by focusing on what's
load bearing
and discarding all other illusions.

this is the road to an
un-distro.

you can compose these.

this is the road to an
un-distro.

anyone can make and ship Zapps!

That's all

Please check out the Zapps website for more info:

https://zapps.app/

p.s. i have been ranting about this for a while

https://media.ccc.de/v/ASG2018-204-path-agnostic_binaries_co-installable_libraries_and_how_to_have_nice_things/

(and this older talk does go a bit more in-depth on various options, if you want more)

zapps @ipfscamp2022

By warpfork

zapps @ipfscamp2022

  • 136