worldofgeese

joined 2 years ago
[–] worldofgeese@lemmy.world 1 points 6 months ago* (last edited 6 months ago)

You haven't experienced the dreaded freezing bug where it locks up while fetching? To be fair, Betterbird also had this issue last time I tried it.

[–] worldofgeese@lemmy.world 2 points 2 years ago

Hey there, for a very simple start there's the compose.yaml file at the bottom of my comment here.

[–] worldofgeese@lemmy.world 5 points 2 years ago

If you're looking for the GitLab version of Codeberg's hosted Forgejo Git forge, there's Framagit hosted by Framasoft.

[–] worldofgeese@lemmy.world 1 points 2 years ago* (last edited 2 years ago)

This sounds like something on your end as I get cached builds every time, rootlessly even. Podman also supports cache mounts.

[–] worldofgeese@lemmy.world 2 points 2 years ago* (last edited 2 years ago) (1 children)

Check my comment history for an example of a simple bind mount compose.yaml I use for developing a small Python project. It's exactly the same as Docker Compose (since Podman Compose follows the Compose spec) but if you're just getting started, it might be a good skeleton to build on.

[–] worldofgeese@lemmy.world 4 points 2 years ago* (last edited 2 years ago)

There's real usability benefits too. I've collected some anecdotes from Reddit:

Rootless podman is my first choice for using containers now, it works fantastically well in my experience. It's so much nicer to have all my container related stuff like volumes, configs, the control socket, etc. in my home directory and standard user paths vs. scattered all over the system. Permission issues with bind mounts just totally disappear when you go rootless. It's so much easier and better than the root privileged daemon.

and,

If you are on Linux, there is the fantastic podman option "--userns keep-id" which will make sure the uid inside+the container is the same as your current user uid.+

and,

Yeah in my experience with rootless you don't need to worry about UID shenanigans anymore. Containers can do stuff as root (from their perspective at least) all they want but any files you bind mount into the container are still just owned/modified by your user account on the host system (not a root user bleeding through from the container).

finally,

The permissions (rwx) don't change, but the uid/gid is mapped. E.g. uid 0 is the running user outside the container, by uid 1 will be mapped to 100000 (configurable), and say 5000 inside the container is mapped to 105000. I don't remember the exact mapping but it works roughly like that.

 

I thought this was really cool: it's backed by a non-profit and one of their supported distros is Guix System!

[–] worldofgeese@lemmy.world 1 points 2 years ago* (last edited 2 years ago) (1 children)

Hmm, well Fedora on its own (so no Silverblue) is very much your classic way of shipping a distro. That tends to mean that, over time, "cruft" accumulates as you upgrade your system, uninstall/reinstall packages, etc. They leave bits of themselves behind that can cause unwanted behavior.

Fedora Silverblue, that Bluefin is based on, treats the entire system layer as "immutable". Basically, it ensures consistency so that upgrades and package upgrades don't leave the system in an inconsistent state.

What Bluefin adds on top of this is a set of opinionated, pre-configured layers suited for getting particular groups of tasks done. Those layers are also immutable and tested as a whole, which makes shipping those layers at velocity easy (faster upgrades, less wonky behavior on upgrade) and easy to swap between, so you can go from gaming to developer mode without worrying about an accumulation of cruft.

Is that helpful at all? There's also this announcement blog post, which I found very helpful in understanding the value proposition.

[–] worldofgeese@lemmy.world 1 points 2 years ago* (last edited 2 years ago) (3 children)

Because it uses OCI images, it auto-updates like a Chromebook, and you can switch between modes, like say a gaming mode that's a full SteamOS replacement, to a mode that gives you an entire development environment without needing to install and configure these layers or stacks of capabilities yourself.

That's very powerful. For cloud native developers like myself who are used to working with container images as the deliverable artifact, this makes that workflow very easy. Podman is included. You can create entire development environments at will that are totally "pure": no side effects because everything you need is in the container. That's a Dev Container.

 

OCI images that you can turn into a full-fledged developer workstation shipping Devbox, Nix, Homebrew, devcontainers and DevPod with one command. Pretty swanky!

[–] worldofgeese@lemmy.world 7 points 2 years ago (1 children)

It should be harder to support Docker, which hasn't released a new open source product since before Docker Desktop, which is also proprietary. Podman Desktop? OSS. It'd be hard to name a product Red Hat supports that isn't OSS.

[–] worldofgeese@lemmy.world 1 points 2 years ago* (last edited 2 years ago)

For what it's worth, I just wrote up a compose.yaml file as I'd write it for Docker Compose and it just worked. See the bottom of my comment on this GitHub issue for an example. I think the team's intention is for it to transparently support whatever you'd write for a standard Compose file but of course we don't have things like the brand new Docker watch. They do point to the Compose spec in the Podman Compose README. Bind mounts are good enough for me, thus far.

[–] worldofgeese@lemmy.world 1 points 2 years ago (1 children)

I've never experienced any bugs with the new topics feature.

[–] worldofgeese@lemmy.world 7 points 2 years ago (6 children)

I use and love Telegram. I use almost all of its features. All of its clients are open source. It has an incredible API for writing bots (which I also do). Their desktop Linux app is native! When I'm traveling I use Stories to share the experience with friends and family. I love the new topics to separate group discussions. It's the one app I've been able to onboard absolutely everyone to. I was never able to do the same when I tried to with Matrix and you only get so many chances before people stop moving.

What is crufty garbage to you?

 

My error message when trying to run minikube from a guix shell is bash: /gnu/store/ixry3pdrrb52mdiypmlrdn19c7gcc5r4-minikube-1.31.2/bin/minikube: No such file or directory

According to ldd and file, it looks like everything is hunky dory as far as where all my linkers are pointing. I'm also including an strace further below. I've run out of options for debugging this and would welcome any feedback and suggestions!

ldd shows what looks like clean RPATHs:

 /gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib/libc.so.6 (0x00007f9299546000)
	libpthread.so.0 => /gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib/libpthread.so.0 (0x00007f9299541000)
	libresolv.so.2 => /gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib/libresolv.so.2 (0x00007f929952e000)
	/lib64/ld-linux-x86-64.so.2 => /gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib/ld-linux-x86-64.so.2 (0x00007f9299744000)

Here's file:

/gnu/store/xhyv7k87gy9k368yrv6faray37z615cr-minikube-1.31.2/bin/minikube: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib/ld-linux-x86-64.so.2, Go BuildID=aBEWfkldQzf4mlUsITym/a6aHGcy9omlZPRTvR8ta/1-lUpI-DPce979zTpJQy/jMuF_0TfmkRW2e3NFst2, not stripped

And strace:

Error:
strace /gnu/store/xhyv7k87gy9k368yrv6faray37z615cr-minikube-1.31.2/bin/minikube
execve("/gnu/store/xhyv7k87gy9k368yrv6faray37z615cr-minikube-1.31.2/bin/minikube", ["/gnu/store/xhyv7k87gy9k368yrv6fa"...], 0x7ffc5f304810 /* 109 vars */) = 0
brk(NULL)                               = 0x50b7000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2daf26c000
***
SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x400318}
***
+++ killed by SIGSEGV +++
Segmentation fault
    (define-module (worldofguix packages minikube)
      #:use-module (guix packages)
      #:use-module (guix download)
      #:use-module ((guix licenses) :prefix license:)
      #:use-module (guix gexp)
      #:use-module (gnu packages gcc)
      #:use-module (gnu packages commencement)
      #:use-module (nonguix build-system binary))

    (define-public minikube
      (package
       (name "minikube")
       (version "1.31.2")
       (source (origin
                 (method url-fetch)
                 (uri (string-append "https://github.com/kubernetes/minikube/releases/download/v" version "/minikube-linux-amd64"))
                  (sha256
                   (base32
                    "16vi7b6vkapc2w3f2yx8mzany5qqvrgvlshc58dambcn2q2hra48"))))
        (build-system binary-build-system)
        (inputs `((,gcc "lib")
              ,gcc-toolchain))
        (arguments
         (list
          #:substitutable? #f
          #:patchelf-plan
           #~'(("./minikube"
              ("gcc" "gcc-toolchain")))
          #:install-plan
          #~'(("minikube" "bin/"))
          #:phases
          #~(modify-phases %standard-phases
              (replace 'unpack
                (lambda _
                  (copy-file #$source "./minikube")
                  (chmod "minikube" #o644)))
              (add-before 'install 'chmod
                (lambda _
                  (chmod "minikube" #o555))))))
        (home-page "https://minikube.sigs.k8s.io/")
        (synopsis "minikube is a tool for running local Kubernetes clusters.")
        (description "minikube implements a local Kubernetes cluster. minikube's primary goals are to be the best tool for local Kubernetes application development and to support all Kubernetes features that fit.")
        (license license:asl2.0)))

    minikube
view more: next ›