Presented by:

27d4ee7bc8d561d78e0be683e17943f1

Don

Professional Software Engineer & Digital Media Marketing Manager, Hobbyist Game Developer, Husband & Father. Hello, I'm Don Duvall (Tazd'ij), I write marketing software which runs primarily on Linux servers. I now use only FOSS at home, and as much as possible at work.

Linux Distro:

I have started creating my own (baseless) Linux Distro "Apoc. Linux", focusing on Installation and Upgrades without an internet connection. Bundle based Package Management, Offline Usability, Lightweight, and Performance Conscious. It is nowhere close to being show-able, but the ideas are set! Now to find time to create the needed software.

Development:

I absolutely love writing software, for just about any thing for any reason. And, when I get the chance to use C99, C11 or FreePascal, I get all kinds of happy. One day I want to be able to develop FOSS for a living. (It's the dream, am i right?)

Let's discuss the possibilities of a bundle based package system. One that is usable for CLI & Desktop utilities/applications. Enabling upgrading applications and libraries without unintended side-effects. But keeping download size, disk usage, and memory bloat minimal.

AppImage, almost gets us to where I want bundling to be. It is however not good at backward compatibility and does a few things I don't like. An AppImage is compressed or at least encoded into a single binary, and mounted on the filesystem, causing startup time inflation or streaming inflate/deflate, resulting in onetime or continues performance penalties. While very clever, something about it is off-putting to me.

Flatpak, not available for CLI/Server usage and is primarily designed for Desktop Environments.

Snappy, this is the most promising to me. However the download size is just ridiculous. This is an archive that is mounted to the filesystem and shares some similarity with a container like system.

I just want some clever indexing, linking and maybe some bind mounting. All of this can happen as bundles are added and removed, causing zero overhead during startup and execution of applications. Without using an actual "single" binary file as the bundle, we are able to distribute bundles via a P2P network (Torrents, for example).

Core Ideas:

  • Bundles are just fancy Folders
  • .SO & Binary files are indexed and hashed (avoiding duplication)
  • Bundles publish .SO & Binary files (via symlinks)
  • With a SmartRepo and/or Client, reduce download size (don't download files already on the system)

** Potentially no modification to how a distro works **

  • Environment Paths are modified
  • .SO & Binaries are linked to central locations
  • No monkey business with the Desktop Environment (yet)
  • All binaries will be usable from the CLI (if published)

What about all of the great software in .deb and .rpm files and repos?

Since we are going for a minimal impact design, and using this FancyFolder idea why not just have a small utility that can read the .deb or .rpm, collect the requirements, and build bundles to distribute.


Demo Time

I would like to share a demo of this idea, not really even Alpha, more of a proof of concept. Written in python (for the sake of time) or FreePascal (because I can) a simple Bundle Manager, and a little Bundle Server


Potential

Consider the possibility of a Torrent Like, P2P, distributed bundle systems.


Is it really all that different?

And in the end, these are very similar to what we have now, with DEB and RPM, but using a slightly different perspective, with some rather "clever" tools and mechanisms.

Date:
2018 April 29 - 02:30
Duration:
45 min
Room:
CC-236
Conference:
LinuxFest Northwest 2018
Language:
Track:
Infrastructure
Difficulty:
Easy

Happening at the same time:

  1. Improving Arduino Education
  2. Start Time:
    2018 April 29 02:30

    Room:
    CC-202 TUT2

  3. I wanna be the guy (or gal) 5 years later
  4. Start Time:
    2018 April 29 02:30

    Room:
    G-103

  5. Open Source at the IEEE Standards Association
  6. Start Time:
    2018 April 29 02:30

    Room:
    CC-114

  7. Pseudo-Bundle based packaging for CLI & Desktop (SquirrelPM)
  8. Start Time:
    2018 April 29 02:30

    Room:
    CC-236

  9. What a sys-admin needs to know to troubleshoot Wayland.
  10. Start Time:
    2018 April 29 02:30

    Room:
    CC-200

  11. "I have nothing to hide": threats to privacy in our society
  12. Start Time:
    2018 April 29 02:30

    Room:
    HC-108

  13. Cover Your AWS: Securing Evergreen at MongoDB
  14. Start Time:
    2018 April 29 02:30

    Room:
    CC-208

  15. Why We Can't Have Nice Things (and how to fix it)
  16. Start Time:
    2018 April 29 02:30

    Room:
    CC-115

  17. Entropy
  18. Start Time:
    2018 April 29 02:30

    Room:
    CC-235

  19. Making Chiptunes on a Raspberry Pi
  20. Start Time:
    2018 April 29 02:30

    Room:
    CC-201 TUT1

  21. Linux Professional Institute: Exam Lab - Session 1
  22. Start Time:
    2018 April 29 02:30

    Room:
    HC-112 LPI

  23. Flyway – Database migration made easy
  24. Start Time:
    2018 April 29 02:30

    Room:
    HC-103 Postgres

  25. Build and Program Your First Arduino Robot
  26. Start Time:
    2018 April 29 02:30

    Room:
    CC-234 BAIRS

  27. openSUSE Mini-Summit
  28. Start Time:
    2018 April 29 02:30

    Room:
    HC-104 openSUSE