I cant figure out if I'm welcome or not

Is there currently a process or docs for a user, such as myself, to create a bundle/mixin and submit/upload that somewhere for others to use. Just want to be clear on this very specific question. No is an acceptable answer as long as it is followed by we are discussing this :slight_smile:

What repo on github should be used for the request of packages, could I simply pr a spec sheet there for someone on the official team to build. Maybe some sort of travis thing where the spec sheet gets built in a container and found to pass a specific set of guardrails before the pr gets looked at and eval’d but a human?

1 Like

Issues · clearlinux/distribution · GitHub and then just choose the right template.

@mattyjones “No, but we are discussing this” :slight_smile:
3rd party repositories is a topic that is being worked, but we’ve been focusing on getting the desktop version out recently.
Tagging @amyg @william.douglas

1 Like

I am very happy with the single minded focus, too much, to fast is a great way to get nothing done right😜

Maybe publishing a roadmap, however incomplete or bloated it is could help?

My general strategy these days is

  1. Install native first - for example, on Clear, the whole R stack.
  2. Install everything I can from flatpaks. They have all the binary stuff the apps need.
  3. Install Docker and containers for services I can’t get from Clear. For example, I need multiple versions of PostgreSQL and those are available on Docker Hub.

Very happy to hear that. It also makes me want to try temporary solutions.

With some of the answers in regards to questions about installing 3rd party content (which is a requirement for me, unfortunately I can’t do my job without it) I was a bit uncertain on whether or not this was a segment you were targeting or not.

Thanks! :+1:

Regarding the submission of new packages:

Now that I’ve spent a solid week using Clear Linux and troubleshooting issues - you’ll see them on GitHub :wink: - I’m curious what the intended audience is for this version of Clear Linux. Is it a modern cloud-native developer who’s handy with Docker and doing things in pet containers? Someone with Intel hardware who wants the ultimate optimizations? Someone who wants to build custom Linux appliances? Someone else?

I ask because there are a lot of little things that are missing right now. For example, there are a few virtio kernel modules missing, and some AMD processors that pass the Clear installability script aren’t fully supported in the kernel modules.

The GIS stack is missing some vital libraries, and the live desktop installer doesn’t come up to a desktop in a Virtual Machine Manager VM even on a Clear Linux host. Clear Linux is usable if you are willing to do some troubleshooting and fall back to containers for workflows that aren’t in the featured bundles. But that doesn’t strike me as a very large audience.

2 Likes

I like the Arch User Repository model for this. The packages are git repos - you clone the repo, inspect its contents, which often consists of a single file, a PKGBUILD script, then do makepkg to build the package. The resulting package is a tarball which you then install with the main Arch package manager, pacman. There’s some community infrastructure / moderation wrapped around it, but the underlying technology is very simple.

Sorry for coming late to this thread.

I think the first thing to talk about regarding custom content on top of Clear Linux default bundles is why are they needed.

Most often things not existing is due to the team not having added them yet and in those cases we strive to add the content in a timely manner. The difficulty is when this isn’t timely enough for folks to get things done and for that I really do recommend docker images or flatpak like tooling if building it yourself and putting it in /usr/local doesn’t make sense.

For cases where it can’t be added to Clear Linux then we run into issues because an official user repository that Clear Linux hosts isn’t sufficiently different from Clear Linux publishing it as part of the distro proper. This makes an aur like repository more difficult because somebody outside of the project would need to maintain it.

The other issue with an AUR like system is content can conflict between packages and with the main distro proper in that setup as there is no coordination between the packages (and in some cases the conflict is nearly unavoidable anyway). To resolve this problem I have tried to develop a limited scope for folks to build (and share) 3rd-party content. This is found via man mixer-user-bundler and man swupd-3rd-party but it has a number of limitations at this point. Right now it only allows binaries to be exported to a user visable $PATH and they do not supersede binaries that Clear Linux provides. I have a roadmap for adding support for 3rd party kernels currently. We don’t have any roadmap for enabling 3rd party libraries to be exposed today.

That’s pretty much our current state and I definitely welcome feedback to our approach.

4 Likes

For me there’s really 3 cases.

  1. Simple user facing apps that can be packaged - for this tools like snapd/flatpak/isolating it in /opt is usually ok. (Although I prefer solutions that keep them up to date personally). This is a fairly simple problem to solve usually.
  2. Apps that can be isolated, but need to hook into startup/shutdown - such as services. Slightly more complicated since it probably needs to integrate with systemd, but still probably doable.
  3. Things like nvidia-drivers, that need to override system libraries with it’s own… That’s… more complicated. Maybe it’d be possible to put this in an overlay and put LD_LIBRARY_PATH for these services early enough? That might give both isolation / without changing root, but still allow the users to fairly easily use things like this?

I like the idea of isolating root, and keeping it secure and up to date. I think most system services are still able to be isolated, and keep their socket files etc out of the base system (although it might be a bit awkward to package some of them…). Could even be a systemd for custom packages that gets mounted/hooked into the base systemd automagically. For nvidia-driver level stuff… I’m not sure if LD_LIBRARY_PATH could keep this 100% isolated… but it’d be nice if it could.

//edit - looks like nvidia-drivers can be isolated. Sample here : coreos-nvidia/README.md at master · src-d/coreos-nvidia · GitHub for using it in docker. This uses exactly this trick of LD_LIBRARY_PATH - you do still need the actual driver and dkms of course, but that’s already a solved problem.

Personally, I’m going down the “pet container” path. I need the kernel to support all my hardware, proprietary or not, and I need at least GNOME and another lighter-weight desktop (currently i3wm), but everything else can live in flatpaks / snaps / appimages / docker / podman containers.

Fedora Silverblue is the closest to that right now, but I think Clear Linux will catch up soon enough. I’m now pretty much set up to run my whole stack - PostGIS, RStudio / R and a few other things - in containers.

As a side note, I don’t know about Macs, but I think containers on Windows are improving rapidly in performance. They may be still less performant than on a Linux host, but I think Microsoft is working hard to close that gap.

Fixed that for you - original post was missing the ‘l’ from bundler.

1 Like