Ideas for the next WLUG meeting
Hey everyone, I'd just like to say I had a fun time at Thursday's meeting! I'm already looking forward to the next meeting as I'm sure there are plenty of interesting topics we could discuss. As mentioned before, I think we could examine technologies that'd be beneficial to Linux on the desktop, like comparing packaging technologies including Flatpak, Snap, and AppImage. I think we could also look into the future of containers on the desktop as a whole with projects like Flatpak, toolbox, podman, and Silverblue. My workflow over the past few years has been using these upcoming technologies as daily drivers as they lead to saner development. For example, my laptop runs Silverblue ( https://fedoramagazine.org/what-is-silverblue/) which is a Fedora variant designed around immutability where a new system image is committed as the new /sysroot without affecting the state of the running system. This is reminiscent of Android A/B updates, although the update backend -- ostree -- has elements of a version control system like git. Toolbox ( https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/) is also interesting as it lets you switch into an unprivileged development environment that can be built up and torn down without affecting the host as tools are installed inside a container. For example, I can build and install duc inside a toolbox without actually installing to the host /usr: [jstone@jstone-laptop ~]$ toolbox create --release 31 --container duc- test [jstone@jstone-laptop ~]$ toolbox enter --container duc-test ⬢[jstone@toolbox ~]$ git clone https://github.com/zevv/duc ⬢[jstone@toolbox ~]$ cd duc ⬢[jstone@toolbox duc]$ sudo dnf --assumeyes install gcc make autoconf automake pango-devel cairo-devel tokyocabinet-devel ncurses-devel ⬢[jstone@toolbox duc]$ autoreconf --install ⬢[jstone@toolbox duc]$ ./configure ⬢[jstone@toolbox duc]$ make ⬢[jstone@toolbox duc]$ sudo make install # no password needed ⬢[jstone@toolbox duc]$ mkdir ~/.cache/duc ⬢[jstone@toolbox duc]$ tcbmgr create ~/.cache/duc/duc.db ⬢[jstone@toolbox duc]$ duc index ~ ⬢[jstone@toolbox duc]$ duc gui Finally, I've been installing most of my apps as Flatpaks, which uses the same file storage backend as Silverblue to manage apps and shared runtimes. This app distribution technology allows you to decouple apps and operating systems as everything is built and run inside a sandbox, making upgrades easier. Compare needing only one version of an app to package as a flatpak, versus packaging for different versions of distros: https://flathub.org/apps/details/org.clementine_player.Clementine https://www.clementine-player.org/downloads I'd be glad to hear what everyone has to say! -Josh
Josh, I think this would be an awesome talk. I'm particularly interested in the /sysroot upgrading process. I like the idea of having an immutable root that you can unwind things if they go horribly wrong. I'm game for having this as our Dec. topic! Thanks, Tim. On Sat, Nov 16, 2019 at 12:03 PM Joshua Stone via WLUG <wlug@lists.wlug.org> wrote:
Hey everyone,
I'd just like to say I had a fun time at Thursday's meeting! I'm already looking forward to the next meeting as I'm sure there are plenty of interesting topics we could discuss.
As mentioned before, I think we could examine technologies that'd be beneficial to Linux on the desktop, like comparing packaging technologies including Flatpak, Snap, and AppImage.
I think we could also look into the future of containers on the desktop as a whole with projects like Flatpak, toolbox, podman, and Silverblue.
My workflow over the past few years has been using these upcoming technologies as daily drivers as they lead to saner development. For example, my laptop runs Silverblue ( https://fedoramagazine.org/what-is-silverblue/) which is a Fedora variant designed around immutability where a new system image is committed as the new /sysroot without affecting the state of the running system. This is reminiscent of Android A/B updates, although the update backend -- ostree -- has elements of a version control system like git.
Toolbox ( https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/) is also interesting as it lets you switch into an unprivileged development environment that can be built up and torn down without affecting the host as tools are installed inside a container. For example, I can build and install duc inside a toolbox without actually installing to the host /usr:
[jstone@jstone-laptop ~]$ toolbox create --release 31 --container duc- test [jstone@jstone-laptop ~]$ toolbox enter --container duc-test ⬢[jstone@toolbox ~]$ git clone https://github.com/zevv/duc ⬢[jstone@toolbox ~]$ cd duc ⬢[jstone@toolbox duc]$ sudo dnf --assumeyes install gcc make autoconf automake pango-devel cairo-devel tokyocabinet-devel ncurses-devel ⬢[jstone@toolbox duc]$ autoreconf --install ⬢[jstone@toolbox duc]$ ./configure ⬢[jstone@toolbox duc]$ make ⬢[jstone@toolbox duc]$ sudo make install # no password needed ⬢[jstone@toolbox duc]$ mkdir ~/.cache/duc ⬢[jstone@toolbox duc]$ tcbmgr create ~/.cache/duc/duc.db ⬢[jstone@toolbox duc]$ duc index ~ ⬢[jstone@toolbox duc]$ duc gui
Finally, I've been installing most of my apps as Flatpaks, which uses the same file storage backend as Silverblue to manage apps and shared runtimes. This app distribution technology allows you to decouple apps and operating systems as everything is built and run inside a sandbox, making upgrades easier. Compare needing only one version of an app to package as a flatpak, versus packaging for different versions of distros:
https://flathub.org/apps/details/org.clementine_player.Clementine https://www.clementine-player.org/downloads
I'd be glad to hear what everyone has to say!
-Josh _______________________________________________ WLUG mailing list -- wlug@lists.wlug.org To unsubscribe send an email to wlug-leave@lists.wlug.org
-- I am leery of the allegiances of any politician who refers to their constituents as "consumers".
Tim, I'm glad you feel that way about it! The /sysroot upgrading process is one of my favorite features about Silverblue, as you gain some of thebenefits of COW snapshots without relying on a particular filesystem(example: https://github.com/openSUSE/snapper). GRUB is also enhanced where instead of selectinga different kernel, you're booting into an entirely different /sysroot complete with kernel, libc, drivers,firmware, etc. all of which are tagged under one discrete OS version string. This design shouldmake bug fixing a lot easier as a user may only need to attach the OS version string when filing a bugreport, and a developer could boot up that particular version inside a VM. This update model should alsoeliminate variance between "not updated" and "fully updated" like we see with traditional packagemanagement where a package mirror might not have synced all of the latest packages. The rollback mechanism is also quite innovative, which Silverblue can get for free by designing updatesthat perform the equivalent of `git checkout ${BRANCH}`. I'm sure there will be much to discuss when we get to have a demo. -Josh On Mon, 2019-11-18 at 13:45 -0500, Tim Keller wrote:
Josh, I think this would be an awesome talk. I'm particularly interested in the /sysroot upgrading process. I like the idea of having an immutable root that you can unwind things if they go horribly wrong.
I'm game for having this as our Dec. topic!
Thanks, Tim.
On Sat, Nov 16, 2019 at 12:03 PM Joshua Stone via WLUG < wlug@lists.wlug.org> wrote:
Hey everyone,
I'd just like to say I had a fun time at Thursday's meeting! I'm
already looking forward to the next meeting as I'm sure there are
plenty of interesting topics we could discuss.
As mentioned before, I think we could examine technologies that'd be
beneficial to Linux on the desktop, like comparing packaging
technologies including Flatpak, Snap, and AppImage.
I think we could also look into the future of containers on the desktop
as a whole with projects like Flatpak, toolbox, podman, and Silverblue.
My workflow over the past few years has been using these upcoming
technologies as daily drivers as they lead to saner development. For
example, my laptop runs Silverblue (
https://fedoramagazine.org/what-is-silverblue/) which is a Fedora
variant designed around immutability where a new system image is
committed as the new /sysroot without affecting the state of the
running system. This is reminiscent of Android A/B updates, although
the update backend -- ostree -- has elements of a version control
system like git.
Toolbox (
https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/) is
also interesting as it lets you switch into an unprivileged development
environment that can be built up and torn down without affecting the
host as tools are installed inside a container. For example, I can
build and install duc inside a toolbox without actually installing to
the host /usr:
[jstone@jstone-laptop ~]$ toolbox create --release 31 --container duc-
test
[jstone@jstone-laptop ~]$ toolbox enter --container duc-test
⬢[jstone@toolbox ~]$ git clone https://github.com/zevv/duc
⬢[jstone@toolbox ~]$ cd duc
⬢[jstone@toolbox duc]$ sudo dnf --assumeyes install gcc make autoconf
automake pango-devel cairo-devel tokyocabinet-devel ncurses-devel
⬢[jstone@toolbox duc]$ autoreconf --install
⬢[jstone@toolbox duc]$ ./configure
⬢[jstone@toolbox duc]$ make
⬢[jstone@toolbox duc]$ sudo make install # no password needed
⬢[jstone@toolbox duc]$ mkdir ~/.cache/duc
⬢[jstone@toolbox duc]$ tcbmgr create ~/.cache/duc/duc.db
⬢[jstone@toolbox duc]$ duc index ~
⬢[jstone@toolbox duc]$ duc gui
Finally, I've been installing most of my apps as Flatpaks, which uses
the same file storage backend as Silverblue to manage apps and shared
runtimes. This app distribution technology allows you to decouple apps
and operating systems as everything is built and run inside a sandbox,
making upgrades easier. Compare needing only one version of an app to
package as a flatpak, versus packaging for different versions of
distros:
https://flathub.org/apps/details/org.clementine_player.Clementine
https://www.clementine-player.org/downloads
I'd be glad to hear what everyone has to say!
-Josh
_______________________________________________
WLUG mailing list -- wlug@lists.wlug.org
To unsubscribe send an email to wlug-leave@lists.wlug.org
Josh, This is a great start for a talk, I really like your example of setting up duc, though you don't need to build the cache yourself with tcbmgr, duc should do that itself on startup. I may borrow your docs and testing things out and update the duc docs as well, since I think what you've done here is really neat. Looking forward to trying to make the next meeting, though December thru February will be tough for me due to other commitments. John
John, Thank you for your input! I was unfamiliar with duc's UI when I first tried using it, but now I'm much more proficient with it. I'm more than happy to share my findings with you so that more people can benefit from useful tools like this. Speaking of which, I've also managed to create a proof-of-concept flatpak of duc which you may find useful for learning the conventions of this app deployment technology: https://github.com/joshua-stone/nl.zevv.Duc I hope you can make it to the next meeting! I'm going to try to make it to the next meeting as well, but it'd have to be well before Christmas because I'll be on vacation for a couple weeks. -Josh On Mon, 2019-11-18 at 21:43 -0500, John Stoffel wrote:
Josh, This is a great start for a talk, I really like your example of setting up duc, though you don't need to build the cache yourself with tcbmgr, duc should do that itself on startup.
I may borrow your docs and testing things out and update the duc docs as well, since I think what you've done here is really neat.
Looking forward to trying to make the next meeting, though December thru February will be tough for me due to other commitments.
John
Joshua> Thank you for your input! I was unfamiliar with duc's UI when Joshua> I first tried using it, but now I'm much more proficient with Joshua> it. If you have any comments or suggestions for the tool to make it better, we'd love to hear it. I've got some plans for this winter to update the code and do better testing, so maybe adding some flatpaks (or directions on how to make flatpaks) would be a great addition. Joshua> I'm more than happy to share my findings with you so that more Joshua> people can benefit from useful tools like this. Speaking of Joshua> which, I've also managed to create a proof-of-concept flatpak Joshua> of duc which you may find useful for learning the conventions Joshua> of this app deployment technology: Joshua> https://github.com/joshua-stone/nl.zevv.Duc Joshua> I hope you can make it to the next meeting! I'm going to try Joshua> to make it to the next meeting as well, but it'd have to be Joshua> well before Christmas because I'll be on vacation for a couple Joshua> weeks. I might make the December meeting, but the January and February ones are right out since I'm chaperoning ski club on thursdays. John
participants (3)
-
John Stoffel
-
Joshua Stone
-
Tim Keller