1
4
2
18
3
0
submitted 2 weeks ago* (last edited 2 weeks ago) by Tea@programming.dev to c/linux@linux.community

In light of Mozilla’s recent policy changes, we no longer feel assured that Firefox aligns with our commitment to protect your privacy. This prompted us to revisit the choice of default web browser in Zorin OS 17.3.

4
4
5
13
submitted 3 weeks ago* (last edited 3 weeks ago) by Tea@programming.dev to c/linux@linux.community

This kernel is targeted at those who want to build a 100% free computer that doesn’t include any proprietary code.

6
4
submitted 4 weeks ago* (last edited 4 weeks ago) by Tea@programming.dev to c/linux@linux.community

A long overdue, and highly requested update today. We’re finally rebranding the project!

7
7
8
9
submitted 1 month ago* (last edited 1 month ago) by Tea@programming.dev to c/linux@linux.community
9
6
submitted 1 month ago* (last edited 1 month ago) by Tea@programming.dev to c/linux@linux.community

With newer GeForce GPUs, Linux distributions will use a driver for OpenGL applications that hands over the actual work to a Vulkan driver.

10
5
submitted 1 month ago* (last edited 1 month ago) by Tea@programming.dev to c/linux@linux.community
11
14

What’s new in this release:

  • Clipboard support in the Wayland driver.
  • Initial Vulkan video decoder support in WineD3D.
  • Bundled Compiler-RT library for ARM builds.
  • Header fixes for Winelib C++ support.
  • More progress on the Bluetooth driver.
  • Various bug fixes.
12
1

Eine Frage an die PyInfra-Admins hier im fediverse. Ich hab mich in den letzten Tagen mit diesem Tool beschäftigt und so einige deploy-scripte geschrieben. Nun komme ich an Punkte, wo ich nicht sicher bin, ob das, was ich gerade mache, so im Sinne des Erfinders ist.

Ich möchte ein paar Server (6 - 10) per pyinfra einrichten. Dabei werden einige Server komplette Webserver mit PHP, PHP-FPM, diversen WebApps (Nextcloud, CMS, WIKI, etc.) und einige bekommen nur einen VPN-Server. Das ist so ganz grob mein Ziel.

Ich bin so weit, dass PyInra mir den kompletten Server aufsetzt. Von der statischen IP, ein paar Anpassungen an der .bashrc, den SSH-Port ändert, Apache, LetsEncrypt, fail2ban, php, php-fpm (beides für verschiedene php-versionen) usw. alles installiert. Toll!

Jetzt bin ich garde dabei, ein Deploy-Script zu schreiben, das mir die Umgebung für eine WebApp einrichtet: vhost.conf für die Domain erstellen und konfigurieren, User, Gruppe, HomeDirs, LogDirs usw. erstellen, LetsEncrypt-Zertifikate holen, usw.

Danach sollen dann all die WebApps (also zum Beispiel nextcloud) per deploy-script installiert werden.

Das sieht alles schon ziemlich gut aus und ich kann mir vorstellen, wie das alles zusammen spielen wird. Aber es ist noch ein weiter Weg.

Mein Problem ist gerade, dass mein Inventory-Script allein nur für einen Host in Kürze bei etwa 200 Zeilen an Host-Data Umfang hat. Ich habe die Befürchtung, dass ich bei dem Umfang an Parametern den Überblick verliere und Fehler mache. Wenn man nur mit dem simplen Dictonary von Python arbeitet, kann man leicht einen Fehler machen, wenn man einen Key angibt und sich dabei vertippt. Es gibt ja keine Fehlerkorrektur oder ein Check, dass der Name des Keys richtig geschrieben wurde. Oder man vergisst einen Eintrag im Dictonary - also in der Beschreibung des Hostes - vorzunehmen. Und dann fliegt hinterher alles auseinander. Ich bin nun dabei, eigene Klasse für die Hosts, Apps und so weiter zu erstellen und dafür zu sorgen, dass dort alles korrekt ist. Aber das ist eine riesige Menge an Arbeit, die mal nicht in 2 Tagen erledigt scheint.

Ist das sinnvoll? Ist das der richtige Weg? Wie handhabt ihr das?

@robertmx @linux #pyinfra #linux #administration #it

13
14
submitted 1 month ago* (last edited 1 month ago) by Tea@programming.dev to c/linux@linux.community

This release also adds a system service for pipewire-pulse, Bluetooth support for BAP broadcast links, and many other changes.

14
9
submitted 1 month ago* (last edited 1 month ago) by Tea@programming.dev to c/linux@linux.community

Marketshare by OS.

Back during January Steam on Linux dropped by 0.23% to a 2.06% marketshare while overnight the numbers were published for February 2025...

The February numbers show a staggering 0.61% drop to Linux use, putting the overall Linux gaming marketshare at just 1.45%. This is a significant drop and haven't seen Linux numbers this low in quite some time.

15
-2
Firefox changes their TOS (www.mozilla.org)
submitted 1 month ago* (last edited 1 month ago) by nkukard@linux.community to c/linux@linux.community

"When you upload or input information through Firefox, you hereby grant us a nonexclusive, royalty-free, worldwide license to use that information to help you navigate, experience, and interact with online content as you indicate with your use of Firefox."

16
-1

Wer hat Ahnung von PyInfra? Ich arbeite mich da gerade rein und bin eigentlich ziemlich angetan. Abgesehen davon, dass ich ständig bei meinen Suchanfragen im Netz auf Tipps zu alten Versionen stoße, die dann meist nicht funktioniert 🙁

Ich würde zum Beispiel aktuell gern wissen, wie ich die Existenz einer Datei auf dem Server prüfen kann, wenn die Datei nur mit root-Rechten zu sehen ist. Ein "_sudo=True" kann man nicht überall einbauen. Auch das globale "_sudo=True" scheint nicht zu helfen.

Also irgendwas der Art:

myfile = host.get_fact(
File,
"/root/.bashrc",
)

Hat da einer eine Idee?

#pyinfra #Python @linux

17
-2

Hallo Linux-Admins, ich brauche mal einen Rat. Ich bin seit recht vielen Jahren mit Linux-Servern "zugange". Ich komme mit der Shell gut zurecht. Einen LAMP-Server aufzusetzen, ist im Grunde mehr oder weniger kein Ding. Programmierung ist jetzt auch nicht so das Problem. Aber ich mache das nicht 24/7. Ich hab noch andere "Hobbies" im WebUmfeld. Gerade bei Neuerungen und Problemlösungen brauche ich einfach zu lange. Daher würde ich so manche Admin-Aufgaben gern automatisieren.

Wie managed man seine Server am sinnvollsten? Sind Tools wie Froxlor, Cockpit, ISPconfig und der gleichen zur Unterstützung wirklich sinnvoll? Ich habe jetzt 2 Jahre mit YunoHost experimentiert. Das System ist schick, aber bei der Umstellung von der einen auf die andere Version knallts. Die Community ist nett und hilfsbereit, aber wenn es Probleme und Fragen gibt und man nach 4 Wochen auf verschiedene Posts so gar keine Reaktion bekommt, dann ist bei allem Verständnis und Geduld auch für ein OpenSource-Tool etwas knifflig. Da stellt sich dann auch im halb-privaten Umfeld doch die Frage der Praktikabilität.

So ein komplexes Tool nun auch noch vollständig bis in den letzten Winkel zu durchdringen, um die Probleme und Bugs dann selbst zu lösen, sprengt dann doch den Rahmen meiner verfügbaren Zeit.

Ich hab jetzt angefangen, wieder alles per Hand zu installieren und zu scripten. Aber ist das wirklich sinnvoll, das Rad neu zu erfinden? Es gibt immer wieder Änderungen an den Systemen und dann buddelt man sich durch die Blogs und Doku, bis man endlich aktuelle Infos hat. Anderseits, weiß man dann, was man hat und kennt sich aus.

Ich bin gerade etwas hin-und-her-gerissen. Habt ihr Tipps, Anregungen oder Gedanken für mich?

@linux #linux #administration #debian #it

18
14

We've tried ~4 web-interface KVM's, and they are all terrible. The interfaces are all buggy and slow. Frequent disconnects, constantly require reboots, etc.

Has anyone used KVM's that are worthwhile?

19
3

Frage zu eRechnungen. Ab 01.01.25 scheinen Unternehmer mit e-Rechnungen zwingend konfrontiert zu werden. Mich hat das Thema gerade völlig kalt erwischt. 🙁
Wenn ich das recht verstehe, dann brauche ich als Freiberufler die Möglichkeit e-Rechnungen a) zu empfangen, zu lesen, zu prüfen und zu archivieren und b) zu erstellen.

Habt ihr hier Tipps, welche Software für Linux und welches Struktur-Format (ZugFerd & Co) man am Sinnvollsten nimmt?

@linux @linux #linux #erechnung #erechnungspflicht #finanzen #rechnung #unternehmen #gründen #FragDasFediverse #Buchhaltung #selbständigkeit #selbständig #Freiberufler

20
4
Welcher Matrix-Client? (friendica.opensocial.space)

Welcher Matrix-Client?
Hallo Matrix-User, welche Desktop- / Web- / Mobile - Clients könnt ihr für den Messenger empfehlen? Es gibt ja verflixt viele zur Auswahl ... Welche sind eure Favoriten? Und wenn ja, warum?

#Matrix #synapse #Element #messenger #Messenger-Matrix #chat #OpenSource @linux @linux #FragDasFediverse #linux #schildi #fluffychat #commet #Cinny #conduit #dendrite

21
1

This article will describe how to download an image from a (docker) container registry.

Manual Download of Container Images with wget and curl
Manual Download of Container Images with wget and curl

Intro

Remember the good `'ol days when you could just download software by visiting a website and click "download"?

Even apt and yum repositories were just simple HTTP servers that you could just curl (or wget) from. Using the package manager was, of course, more secure and convenient -- but you could always just download packages manually, if you wanted.

But have you ever tried to curl an image from a container registry, such as docker? Well friends, I have tried. And I have the scars to prove it.

It was a remarkably complex process that took me weeks to figure-out. Lucky you, this article will break it down.

Examples

Specifically, we'll look at how to download files from two OCI registries.

  1. Docker Hub
  2. GitHub Packages

Terms

First, here's some terminology used by OCI

  1. OCI - Open Container Initiative
  2. blob - A "blob" in the OCI spec just means a file
  3. manifest - A "manifest" in the OCI spec means a list of files

Prerequisites

This guide was written in 2024, and it uses the following software and versions:

  1. debian 12 (bookworm)
  2. curl 7.88.1
  3. OCI Distribution Spec v1.1.0 (which, unintuitively, uses the '/v2/' endpoint)

Of course, you'll need 'curl' installed. And, to parse json, 'jq' too.

sudo apt-get install curl jq

What is OCI?

OCI stands for Open Container Initiative.

OCI was originally formed in June 2015 for Docker and CoreOS. Today it's a wider, general-purpose (and annoyingly complex) way that many projects host files (that are extremely non-trivial to download).

One does not simply download a file from an OCI-complianet container registry. You must:

  1. Generate an authentication token for the API
  2. Make an API call to the registry, requesting to download a JSON "Manifest"
  3. Parse the JSON Manifest to figure out the hash of the file that you want
  4. Determine the download URL from the hash
  5. Download the file (which might actually be many distinct file "layers")
One does not simply download from a container registry
One does not simply download from a container registry

In order to figure out how to make an API call to the registry, you must first read (and understand) the OCI specs here.

OCI APIs

OCI maintains three distinct specifications:

  1. image spec
  2. runtime spec
  3. distribution spec

OCI "Distribution Spec" API

To figure out how to download a file from a container registry, we're interested in the "distribution spec". At the time of writing, the latest "distribution spec" can be downloaded here:

The above PDF file defines a set of API endpoints that we can use to query, parse, and then figure out how to download a file from a container registry. The table from the above PDF is copied below:

ID Method API Endpoint Success Failure
end-1 GET /v2/ 200 404/401
end-2 GET / HEAD /v2/<name>/blobs/<digest> 200 404
end-3 GET / HEAD /v2/<name>/manifests/<reference> 200 404
end-4a POST /v2/<name>/blobs/uploads/ 202 404
end-4b POST /v2/<name>/blobs/uploads/?digest=<digest> 201/202 404/400
end-5 PATCH /v2/<name>/blobs/uploads/<reference> 202 404/416
end-6 PUT /v2/<name>/blobs/uploads/<reference>?digest=<digest> 201 404/400
end-7 PUT /v2/<name>/manifests/<reference> 201 404
end-8a GET /v2/<name>/tags/list 200 404
end-8b GET /v2/<name>/tags/list?n=<integer>&last=<integer> 200 404
end-9 DELETE /v2/<name>/manifests/<reference> 202 404/400/405
end-10 DELETE /v2/<name>/blobs/<digest> 202 404/405
end-11 POST /v2/<name>/blobs/uploads/?mount=<digest>&from=<other_name> 201 404
end-12a GET /v2/<name>/referrers/<digest> 200 404/400
end-12b GET /v2/<name>/referrers/<digest>?artifactType=<artifactType> 200 404/400
end-13 GET /v2/<name>/blobs/uploads/<reference> 204 404

In OCI, files are (cryptically) called "blobs". In order to figure out the file that we want to download, we must first reference the list of files (called a "manifest").

The above table shows us how we can download a list of files (manifest) and then download the actual file (blob).

Examples

Let's look at how to download files from a couple different OCI registries:

  1. Docker Hub
  2. GitHub Packages

Docker Hub

To see the full example of downloading images from docker hub, click here

GitHub Packages

To see the full example of downloading files from GitHub Packages, click here.

Why?

I wrote this article because many, many folks have inquired about how to manually download files from OCI registries on the Internet, but their simple queries are usually returned with a barrage of useless counter-questions: why the heck would you want to do that!?!

The answer is varied.

Some people need to get files onto a restricted environment. Either their org doesn't grant them permission to install software on the machine, or the system has firewall-restricted internet access -- or doesn't have internet access at all.

3TOFU

Personally, the reason that I wanted to be able to download files from an OCI registry was for 3TOFU.

Verifying Unsigned Releases with 3TOFU
Verifying Unsigned Releases with 3TOFU

Unfortunaetly, most apps using OCI registries are extremely insecure. Docker, for example, will happily download malicious images. By default, it doesn't do any authenticity verifications on the payloads it downloaded. Even if you manually enable DCT, there's loads of pending issues with it.

Likewise, the macOS package manager brew has this same problem: it will happily download and install malicious code, because it doesn't use cryptography to verify the authenticity of anything that it downloads. This introduces watering hole vulnerabilities when developers use brew to install dependencies in their CI pipelines.

My solution to this? 3TOFU. And that requires me to be able to download the file (for verification) on three distinct linux VMs using curl or wget.

⚠ NOTE: 3TOFU is an approach to harm reduction.

It is not wise to download and run binaries or code whose authenticity you cannot verify using a cryptographic signature from a key stored offline. However, sometimes we cannot avoid it. If you're going to proceed with running untrusted code, then following a 3TOFU procedure may reduce your risk, but it's better to avoid running unauthenticated code if at all possible.

Registry (ab)use

Container registries were created in 2013 to provide a clever & complex solution to a problem: how to package and serve multiple versions of simplified sources to various consumers spanning multiple operating systems and architectures -- while also packaging them into small, discrete "layers".

However, if your project is just serving simple files, then the only thing gained by uploading them to a complex system like a container registry is headaches. Why do developers do this?

In the case of brew, their free hosing provider (JFrog's Bintray) shutdown in 2021. Brew was already hosting their code on GitHub, so I guess someone looked at "GitHub Packages" and figured it was a good (read: free) replacement.

Many developers using Container Registries don't need the complexity, but -- well -- they're just using it as a free place for their FOSS project to store some files, man.

22
8
submitted 8 months ago by ChrisG@lemmy.world to c/linux@linux.community
23
8
submitted 11 months ago by edinbruh@feddit.it to c/linux@linux.community

Do you have an AMD aura GPU? Do you also use Linux? There's this this driver that needs to be tested.

It allows you to control the lighting of the GPU using programs like openRGB.

I wrote that PR that should make it work for more GPUs, but I only have an RX 480 so I can only test that one. It would be useful to try it on a Vega gpu.

If you have an rDNA 1/2/3 GPU, it most likely won't work, but without the card there's nothing I can do.

On a side note, if you are interested in maintaining the driver it would be great.

24
5
submitted 11 months ago by edinbruh@feddit.it to c/linux@linux.community

Detailed issue

Basically Kwin and other programs (simple xdg-desktop-portal or even gimp) crash and they bork the entire screen with no recovery other than rebooting. When the program that crash is Kwin it's particularly bad because it happens at login.

25
9
view more: next ›

@linux on Linux.Community

627 readers
2 users here now

Rules

This is an on-topic community. All content must adhere to our CODE OF CONDUCT.

founded 2 years ago
MODERATORS