Pseudo-Bundle based packaging for CLI & Desktop (SquirrelPM)
Viewing packages from a different perspective
Presented by:
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
- Improving Arduino Education
- Start Time:
- 2018 April 29 02:30
- Room:
- CC-202 TUT2
- I wanna be the guy (or gal) 5 years later
- Start Time:
- 2018 April 29 02:30
- Room:
- G-103
- Open Source at the IEEE Standards Association
- Start Time:
- 2018 April 29 02:30
- Room:
- CC-114
- Pseudo-Bundle based packaging for CLI & Desktop (SquirrelPM)
- Start Time:
- 2018 April 29 02:30
- Room:
- CC-236
- What a sys-admin needs to know to troubleshoot Wayland.
- Start Time:
- 2018 April 29 02:30
- Room:
- CC-200
- "I have nothing to hide": threats to privacy in our society
- Start Time:
- 2018 April 29 02:30
- Room:
- HC-108
- Cover Your AWS: Securing Evergreen at MongoDB
- Start Time:
- 2018 April 29 02:30
- Room:
- CC-208
- Why We Can't Have Nice Things (and how to fix it)
- Start Time:
- 2018 April 29 02:30
- Room:
- CC-115
- Entropy
- Start Time:
- 2018 April 29 02:30
- Room:
- CC-235
- Making Chiptunes on a Raspberry Pi
- Start Time:
- 2018 April 29 02:30
- Room:
- CC-201 TUT1
- Linux Professional Institute: Exam Lab - Session 1
- Start Time:
- 2018 April 29 02:30
- Room:
- HC-112 LPI
- Flyway – Database migration made easy
- Start Time:
- 2018 April 29 02:30
- Room:
- HC-103 Postgres
- Build and Program Your First Arduino Robot
- Start Time:
- 2018 April 29 02:30
- Room:
- CC-234 BAIRS
- openSUSE Mini-Summit
- Start Time:
- 2018 April 29 02:30
- Room:
- HC-104 openSUSE