ubuntuusers.de

25. Mai 2021

Ich habe seit längerer Zeit das Problem in dem Musikprogramm (DAW) Bitwig, dass Klicks irgendwie nicht so richtig gut verarbeitet werden. In letzter Zeit wird das Problem intensiver und daher habe ich mich mal auf die Suche gemacht, um dieses Problem in meinem Kubuntu 20.04 einzugrenzen.

Dazu kommt noch, dass seit dem Wechsel von evdev nach libinput sind auch die erweiterten Einstellungen der Mauseigenschaften in den Systemeinstellungen nicht mehr verfügbar. Aber Linux wäre nicht Linux, wenn man das nicht in einer Textdatei selber eintragen könnte.

Im Homeverzeichnis des Benutzers gibt es das versteckte Verzeichnis .config und dort gibt es die Textdatei kdeglobals .

Die Datei kdeglobals öffnet man mit einem Texteditor wie z.B. Kate und sucht den Abschnitt der mit [KDE] anfängt. Bei mir sieht dieser Teil dann mit der entsprechenden weiteren Konfiguration mit einem kürzeren Doppelklick (DoubleClickInterval - Angabe in Millisekunden) so aus

[KDE]
AnimationDurationFactor=1.000000
ColorScheme=Breeze
LookAndFeelPackage=org.kde.breezedark.desktop
ScrollbarLeftClickNavigatesByPage=false
ShowDeleteCommand=false
ShowIconsInMenuItems=true
ShowIconsOnPushButtons=true
SingleClick=true
contrast=4
DoubleClickInterval = 200

 

 

Obsidian startet manchmal mit einer Fehlermeldung, dass nicht genügend File Watchers zur Verfügung ständen “System limit for number of file watchers reached, watch...” und man diese doch erhöhen möchte. Das taucht bei mir mal hier mal da nach einem kompletten Neustart auf und hat etwas mit einem Bug des Electron Frameworks zu tun ….

Einen Workaround für diesen Fehler kann man direkt im Systen eingeben.

Man öffnet mit root Rechten die Datei /etc/sysctl.con mit einem Editor und fügt folgende Zeile an das Ende (wenn die Zeile noch nicht da sein sollte)

fs.inotify.max_user_watches=524288

Mit folgendem Befehl wird geprüft, ob die Einstellung auch übernommen wurde

sudo sysctl -p

Danach sollte Obsidian wieder starten.

 

Ein anderer Ansatz ist es im Verzeichnis /etc/sysctl.d/ die Datei 10-user-watches.conf anzulegen und dort die obige Zeile einzutragen

 

Weitere Artikel

  1. Obsidian - Markdown your Power

 

 

Di, 25. Mai 2021, Ralf Hersel

Die ISO-Dateien gewöhnlicher GNU/Linux-Distributionen haben in der Regel eine Grösse von 2 GB (Ubuntu 21.04 hat 2.6 GB, Fedora 34 ist 1.9 GB gross). Es gibt viele kleinere Distros, z.B. ArchBang (1 GB), Puppy Linux (400 MB), Porteus (300 MB), SliTaz (43 MB), Tiny Core Linux (16 MB). Darüber kann Krzysztof Krystian Jankowski nur lachen. Sein Floppinux bootet von einer 1.44 MB Diskette.

Er hat eine eingebettete Linux-Distribution von Grund auf neu erstellt. Sie passt auf eine einzelne Diskette. Zum Zeitpunkt des Schreibens verwendet sie ~1MB Speicherplatz. Das gibt ihm ~400KB freien Platz, den er für Anwendungen nutzen kann.

Diese Distribution kann auf einem 486DX-PC mit 24 MB RAM booten. Auf einem Emulator bootet sie fast augenblicklich. Auf moderner Bare-Metal-Hardware ist das einzige, was diese Geschwindigkeiten verhindert, die tatsächliche Geschwindigkeit eines Diskettenlaufwerks.

Wer sich für diesen Minimal-Ansatz interessiert und Floppinux selbst bauen und booten möchte, findet alle Details auf Krystians Webseite. Es gibt auch ein Video, in dem er den Bootvorgang von Floppinux mit dem Handy gefilmt hat. Im Video sieht man, wie er über die Grossen lachen kann.

Hinweis: Es ist mir klar, dass man die Grösse von Installations-Medien nicht miteinander vergleichen kann, weil die Desktop-Umgebungen und die Anzahl der bereitgestellten Anwendungen viel zur Grösse des ISO-Images beitragen. Mir war es wichtig aufzuzeigen, dass es funktionierende Installationen gibt, die auch mit einem Tausendstel des Üblichen auskommen.

Quelle: https://bits.p1x.in/floppinux-an-embedded-linux-on-a-single-floppy/

24. Mai 2021

BitLocker To Go ist Microsofts Lösung zur Verschlüsselung von USB-Sticks und externen Festplatten. Unter Linux lassen sich entsprechend verschlüsselte Speichermedien mit Cryptsetup 2.3 und neuer verwenden.

Das ist jetzt eher ein Blogartikel aus der Rubrik „Und so einfach kann es gehen“. Zu Testzwecken hatte ich mit einem aktuellen Windows 10 Pro einen USB-Stick mit BitLocker to Go gesichert.

Den Stick habe ich anschließend an mein Linux-System angeschlossen und in Dolphin ausgewählt. Es folgt die obligatorische Passwortabfrage wie z. B. auch bei LUKS verschlüsselten Speichermedien und anschließend kann man den Stick normal benutzen.

Cryptsetup 2.3 ist noch nicht in allen Distributionen enthalten, da gerade solche elementaren Basis-Werkzeuge oft zögerlich aktualisiert werden und es erst vor knapp einem Jahr veröffentlicht wurde. Das in wenigen Wochen kommende openSUSE Leap 15.3 enthält es aber ebenso wie das für den Sommer erwartete Debian 11 „Bullseye“. Spätestens mit der im kommenden Jahr erscheinenden LTS 22.04 von Ubuntu dürfte man dann Cryptsetup 2.3 auf Linux-Systemen voraussetzen können.

Ab dann wäre es eine Überlegung wert, für Betriebssystem-übergreifende Verschlüsselung auf BitLocker To Go anstelle von VeraCrypt zu setzen. Letzteres ist zwar Open Source, aber bei Weitem kein Standard (viele nutzen unverständlicherweise immer noch TrueCrypt) und man kann nicht darauf vertrauen, dass es vorinstalliert ist. Bei portablen Speichermedien immer noch ein großes Hindernis und ein Grund, weshalb viele gänzlich auf Verschlüsselung verzichten.

Ein Manko bleibt, dass Cryptsetup lediglich existierende BitLocker-Speichermedien einbinden, aber selbst keine anlegen kann. Ebenfalls beschränkt sich die Unterstützung auf normale Passwortabfragen. Erweitere Sicherungen wie SmartCards oder TPM werden nicht unterstützt.

Der Artikel Cryptsetup und BitLocker To Go erschien zuerst auf [Mer]Curius

23. Mai 2021

Die faktische Abkündigung von CentOS durch Red Hat hat mehrere Nachfolgeprojekte entstehen lassen. Oracle versuchte seine eigene Distribution prominenter zu präsentieren, aus der Community kam noch Rocky Linux. Aussichtsreichster Kandidat ist aber wohl AlmaLinux.

Bei allen Projekte handelt es sich um freie Klone von Red Hat Enterprise Linux. Deshalb gibt es naturgemäß kaum Abweichungen zu RHEL und die Arbeit besteht „nur“ in der Übernahme der RHEL-Entwicklung. Man hat allerdings in den letzten Jahren bei CentOS gesehen, dass dieses „nur“ ganz schön viel Arbeit machen kann. Vor allem durch Neuerungen wie die App Streams, die Red Hat in Version 8 eingeführt hat.

RHEL und seine freien Klone dürften die meisten vor allem im Server-Kontext interessieren. RHEL bietet aber auch einen Desktop und hier wird es interessant, denn Red Hat bietet extrem lange Supportzeiträume. Anvisiertes Ende für RHEL 8 ist zur Zeit 2029. RHEL und seine freien Clone sind deshalb vor allem für Desktops interessant, die extrem lange (vermutlich sogar über die gesamte Lebenszeit der Hardware) stabil laufen sollen.

Installation von AlmaLinux

Zur Installation stehen einige Images bereit. Es gibt u.a. eine minimale und eine vollständige ISO. Die Installation erledigt das von RHEL und Fedora bekannt Anaconda mit all seinen Stärken und Schwächen (Partitionierung!).

Die Installation einer grafischen Oberfläche ist in der Installationsroutine dezidiert nicht vorgesehen. Da zeigt sich wieder mal der Server-Fokus. Dafür gibt es die Möglichkeit, ein „kopfloses Management“ einzurichten. Die schönen Fallstricke der Lokalisierung.

Es muss also zuerst eine minimale Variante installiert werden und anschließend nachträglich die Desktopumgebung.

Dies geschieht nach einem Neustart auf der Kommandozeile mit folgendem Befehl.

# dnf groupinstall "Server mit GUI"

Von dem „Server“ nicht irritieren lassen. Die Bezeichnung ist etwas komisch und könnte falsche Schlussfolgerungen aufkommen lassen. Ich vermute, dass bei der Gruppenbezeichnung der X-Server gemeint gewesen ist.

Anschließend muss man noch festlegen, dass das System direkt im grafischen Modus startet.

# systemctl set-default graphical

Nach einem Neustart begrüßt einen GDM.

Desktop und Programme

AlmaLinux enthält genau wie RHEL nur GNOME. Nachdem man in der letzten Version KDE rausgeschmissen hat, macht Red Hat hier keine Kompromisse mehr. Alle RHEL-Klone sind deshalb nur für Anwender interessant, die mit GNOME arbeiten können und wollen.

GNOME liegt in Version 3.28 vor. Das ist natürlich schon ein bisschen älter, aber ich wüsste nicht, welche Funktionen danach hinzugekommen wären, die wirklichen Mehrwert bringen. Die Auswahl an vorinstallierten Programmen ist sehr reduziert und beschränkt sich auf die wesentlichen GNOME Programme.

Firefox wird in der aktuell vorliegenden ESR-Variante 78 ausgeliefert, LibreOffice in 6.4.

Die Programmauswahl in den Paketquellen ist natürlich eingeschränkt, wobei für normale Desktopanforderungen nicht wirklich etwas fehlt.

Ansonsten ist Flatpak in den Paketquellen enthalten, womit sich auch aktuelle Programmversionen beliebiger Software z. B. über Flathub installieren lassen.

Zusammengefasst

Wer gerne mit GNOME arbeitet und Ruhe am Desktop haben will, für den ist AlmaLinux sicherlich nicht uninteressant. Ich würde mir ja genau so etwas für KDE wünschen.

In jedem Fall ist AlmaLinux allem Anschein nach ein würdiger CentOS-Nachfolger und kommt entsprechend nun hier auf die Seite mit den LTS-Empfehlungen.

Der Artikel CentOS Nachfolger AlmaLinux angetestet erschien zuerst auf [Mer]Curius

22. Mai 2021

Als Anwender kann man getrost LTS-Versionen verwenden, denn es gibt keine substanzielle Entwicklung, die man droht zu verpassen. Es gibt nur das Hochzählen von Versionen und die Illusion von Entwicklung durch Changelogs voller Fixes, die Probleme beheben, die man zwei Versionen vorher eingeführt hat.

Übertreibe ich etwas? Sicherlich! Aber nicht so sehr, wie manche Befürworter von Rolling Release-Modellen behaupten würden.

Die Präferenz für LTS-Distributionen ist für langjährige Leser sicher nicht neu. Bereits seit vielen Jahren gibt es auf [Mer]Curius eine Übersichtsseite für geeignete Distributionen und die wesentlichen Gedanken habe ich vor ein paar Monaten schon mal zusammen gestellt.

Die Idee zu diesem Artikel kam mir, als ich vor ein paar Wochen ein paar Kubuntu 18.04 Installationen auf 20.04 aktualisierte. Neuerungen gab es keine merkbaren und das obwohl die KDE-Entwicklung von 2 Jahren in das Release eingeflossen war. Da die Systeme ihre Aufgaben völlig zufriedenstellend erledigen, ist das natürlich kein Problem – nun erledigen sie ihre Aufgaben eben mit 20.04 anstelle 18.04 und vorher 16.04. Doch gab es überhaupt substanzielle Neuerungen in den letzten 10 Jahren, auf die man unmöglich 2-3 Jahre warten konnte?

Die erste Reaktion ist sicherlich: Klar, natürlich gab es die. Es waren so viele Jahre und so viele Releases, da muss sich doch viel substanzielles getan haben. Zumal KDE noch eines der aktiveren Projekte am Linux-Desktop ist und nicht gerade für langfristige Produktpflege steht.

Andererseits wird der Linux-Desktop insgesamt sehr konservativ weiterentwickelt. Das betrifft nicht nur MATE und Xfce, sondern auch GNOME und KDE. Ja, auch diese beiden! Die GNOME Shell war natürlich ein harter Bruch, aber seitdem hat sich kaum noch was getan, auch mit GNOME 40 waren das eher graduelle Veränderungen. Nimmt man die Classic Shell sind die Veränderungen noch überschaubarer. Bei KDE gab es Plasma 4 und Plasma 5 und man hat den Code vermutlich zwei Mal ausgetauscht. Veränderungen? Seht selbst:

Ich habe zu Demonstrationszwecken mal die ISO von Kubuntu 8.04 gestartet und vergleiche hier mit ein paar Screenshots mit Kubuntu 20.04. Dazwischen liegen also gut 12 Entwicklungsjahre. Dabei nicht von den Symbolen und der QtCurve-Optik täuschen lassen. Man könnte ein heutiges Plasma ziemlich leicht wie KDE 3.5 aussehen lassen und umgekehrt.

Optische Entwicklung

Desktop mit Dolphin und Konsole

Systemeinstellungen

Office

Diese Serie ließe sich beliebig fortsetzen, da auch Kontact und andere Programme sich oberflächlich kaum verändert haben. KDE ist hier nur ein Beispiel, man könnte das problemlos auch für GNOME machen. Bei MATE und Xfce müsste man vermutlich nicht mal zwei Images starten, sondern könnte einfach das Wallpaper ändern und behaupten, dass 10 Jahre vergangen sind. Es gibt nur sehr wenige Endanwender-Programme, die so aktiv entwickelt werden, dass man wirklich zwingend jede Veröffentlichung mitnehmen muss. Browser gehören da dazu, aber dafür haben Distributionen schon lange Lösungen gefunden.

Das betrifft aber nicht nur die Optik, sondern auch die Funktionen. Kubuntu 8.04 liefert bereits eine vollständige Programm-Sammlung aus, die eigentlich keine Funktionen vermissen lässt, die man heute bei Kubuntu gewohnt ist. Das muss nicht als Kritik an Kubuntu 20.04 verstanden werden, sondern zeigt einfach wie weit der Linux-Desktop 2008 schon war und warum man damals von dem Vista-Debakel so profitieren konnte. Jedenfalls habe ich in Kubuntu 8.04 nichts gefunden, das mir fundamental fehlen würde. Natürlich kann OpenOffice noch nicht so gut mit OOXML umgehen, wie LibreOffice heute und natürlich kann man mit 8.04 nicht mehr produktiv ins Internet aber das sind die üblichen Anpassungen an moderne Standards.

Einordnung

Sicherlich gab es Veränderungen unter der Haube. Allerdings auch nicht so viel, wie man vielleicht vermuten mag. Denn das ubuntuusers-Wiki weiß für 8.04 schon zu berichten, dass mit PulseAudio und PolicyKit Technologien eingeführt wurden, die uns noch heute begleiten. Drucker laufen mit CUPS, Scanner mit sane. Die Abkehr von HAL stand ebenfalls kurz bevor. Ein Linux von heute funktioniert gar nicht so fundamental anders als 2008. Sogar X11 ist uns bis heute erhalten geblieben, denn Wayland ist immer noch nicht in der Breite angekommen.

Es gibt viele Gründe für diese eher überschaubaren optischen Neuerungen. Das Desktop-Konzept, dem alle Desktop-Betriebssysteme und eben auch alle Desktopumgebungen bei Linux folgen, hat sich seit 1995 nicht mehr substanziell verändert. Das gilt auch für die Funktionen, die wir am Desktop erwarten. Da hat sich nicht nur bei Linux, sondern auch bei Windows und macOS ein gewisser Konsens eingestellt. Die Linux-Community ist zudem besonders konservativ, weshalb man an UI-Richtlinien festhält, die bei Windows und macOS schon lange obsolet sind (siehe LibreOffice), wodurch noch weniger optische Brüche als bei anderen Systemen auftreten.

Viele andere Veränderungen mögen das Entwicklerherz erfreuen, aber ob der Desktop nun auf Qt3, Qt4, Qt5 oder in naher Zukunft Qt6-Toolkit setzt, ist dem Anwender doch herzlich egal. Das gleiche gilt im anderen Lager für Gtk2, Gtk3 oder eben Gtk4. Gleiches gilt für irgendwelche Neuentwicklungen, bei denen der Code dann in Qt Quick oder irgendeiner anderen „Fancy“-Sache neu geschrieben wird. Aus Entwicklersicht mag das klug sein, vielleicht sogar zukunftsweisend oder einfach nur Spaß machen. Als Anwender muss ich konstatieren, dass es für meine Anwendungsfälle nicht so wichtig ist, ob etwas aktuellen Standards entspricht oder nicht – sofern es funktioniert.

Wenn man die Changelogs der großen Softwareprojekte wie KDE mal um solche Veränderungen an der Codebasis, die den Anwender überhaupt nicht interessieren, reduziert und dann noch die Fehlerbehebungen von Bugs heraus nimmt, die durch solche Umbaumaßnahmen eben erst verursacht wurden, sind die Changelogs auch viel kürzer und spiegeln den faktischen Fortschritt. Es gab ihn, er ist auch auf den Screenshots und im Alltag merkbar, er ist aber nicht so groß wie die Zusammenfassung der Ankündigungen glauben macht.

Schlussfolgerungen

Deshalb soll man natürlich auf keinen Fall auf Updates verzichten – schon alleine um der Sicherheit willen. Genau deshalb hat die Linux-Welt die LTS-Distribution hervorgebracht, die Sicherheitsupdates bringen, ohne den Anwender mit neuen Funktionen und ihren Fehlern zu behelligen.

Ich kann aber wirklich nur empfehlen, mal diesen Vergleich mit der präferieren Distribution und der bevorzugten Desktopumgebung zu machen. Ständige Updates erzeugen ein Gefühl von Fortschritt, das sich teilweise von der Realität entkoppelt hat. Wenn KDE Gears mal wieder ein gebündeltes Release veröffentlicht, bedeutet das bei openSUSE Tumbleweed hunderte Paketupdates. Ich lehne mich nicht weit auf dem Fenster, wenn ich behaupte, dass in vielen der dort gebündelten Programme in der Entwicklungsphase bestenfalls 1 oder 2 Commits erfolgten.

Um dieses bisschen Entwicklung mitzunehmen, reichen LTS-Distributionen problemlos aus. Es gibt wirklich keine Notwendigkeit ein rollendes Release zu nutzen und der „Versionitis“ zu verfallen. Rational betrachtet tut sich zwischen den LTS-Versionen viel weniger als manche Ankündigungen glauben machen. Wenn man das Prinzip die letzten Jahre verfolgt hat, ist man von 8.04 über 12.04 zu 14.04 und von 18.04 zu 20.04 gekommen und hat nicht viel verpasst, aber seine Nerven geschont. Schade, dass Kubuntu nur noch 3-Jährige Supportzyklen hat. Für die realen Neuerungen reicht ein Distributions-Upgrade alle 3-5 Jahre völlig aus.

Eines ist jedoch jetzt schon klar: Wenn KDE Plasma 6 in Zukunft kommt, werde ich dem ganzen entspannt von einer LTS mit Plasma 5 zuschauen und andere die Bugs finden lassen, die durch den Wechsel der Basis Einzug gehalten haben. Irgendwann wird dann schon eine produktiv nutzbare LTS mit Plasma 6 kommen. Verpassen tut man da nichts.

Der Artikel LTS Versionen reichen völlig – Von Kubuntu 8.04 zu 20.04 erschien zuerst auf [Mer]Curius

Im Rahmen des von der Europäischen Union geförderten Bergamot Projects arbeitet Mozilla daran, eine Übersetzungsfunktion für den Browser zu entwickeln – und das vollständig ohne Online-Komponente wie Google Translate. Die Firefox-Erweiterung, welche in Firefox Translations umbenannt worden ist, wurde nun in der Version 0.4 veröffentlicht.

Bergamot Project: Website-Übersetzung im Browser

Bereits im Oktober 2019 berichtete ich über das Bergamot Project. Zur Erinnerung:

Hintergrund des Ganzen ist das von der Europäischen Union geförderte Bergamot Project, in dessen Rahmen Mozilla mit der University of Tartu (Estland), der University of Sheffield (England), der University of Edinburgh (Schottland) und der Charles University (Tschechien) kollaboriert, um eine vollständig clientseitige Funktion zur maschinellen Übersetzung von Websites für den Browser zu entwickeln.

Die clientseitige Durchführung der Übersetzung soll einerseits der Privatsphäre dienen, da kein Datenriese wie Google involviert ist, andererseits aber auch die Verbreitung von Sprachtechnologie in Europa fördern, und zwar in Bereichen, welche Vertraulichkeit erfordern und wo es dementsprechend keine Option ist, die Übersetzung in der Cloud durchzuführen.

Das Bergamot Project ist mit drei Millionen Euro durch die Europäische Union gefördert und auf drei Jahre ausgelegt. Damit das Projekt auch über die drei Jahre hinaus einen langfristigen Effekt hat, wird die Übersetzungsfunktion in Firefox integriert und alle Technologien, welche im Rahmen des Bergamot Projects entstehen, als Open Source veröffentlicht.

Firefox Translations 0.4

Bergamot Translate wurde umbenannt in Firefox Translations und bringt gegenüber der Ende März veröffentlichten Version 0.3 einige Verbesserungen. Nach wie vor erlaubt Firefox Translations ausschließlich Übersetzungen aus dem Spanischen sowie aus dem Estnischen ins Englische und umgekehrt, sowie vom Englischen ins Deutsche (allerdings nicht umgekehrt).

Die Sprachmodelle sind nicht mehr mit der Erweiterung gebündelt, sondern werden bei Bedarf automatisch zur Laufzeit heruntergeladen, sobald der Anwender den Übersetzungs-Vorgang startet und das entsprechende Sprachmodell noch nicht existiert. Dementsprechend hat die Erweiterung selbst nur noch eine Dateigröße von 3,7 MB statt der 124 MB der vorherigen Version. Und Sprachmodelle, die vom Nutzer gar nicht erst benötigt werden, müssen auf diese Weise auch nie heruntergeladen werden. Bei ca. 25 MB pro Sprach-Kombination kann dies viel ausmachen, insbesondere wenn irgendwann noch weitere Sprachen unterstützt werden.

Das Laden der Sprachmodelle in den Arbeitsspeicher, was bei der ersten Verwendung der Übersetzungs-Funktion in Version 0.3 noch zwischen zehn und 30 Sekunden dauern konnte, passiert nun in der Regel in weniger als einer Sekunde. Die Dauer der Übersetzung selbst liegt weiterhin bei zwischen 500 und 600 Wörtern pro Sekunde.

Dauert die Übersetzung insgesamt länger als drei Sekunden, zeigt die Übersetzungs-Leiste jetzt den Fortschritt an, so dass der Nutzer weiß, was gerade passiert, und sich nicht fragen muss, ob die Übersetzung stecken geblieben ist.

Firefox Translations 0.4 sendet zur weiteren Verbesserung der Qualität Telemetrie-Daten an Mozilla, sofern Telemetrie in Firefox aktiviert ist. Welche Daten erhoben werden, ist im Detail dokumentiert.

Dazu kommen allgemeine Verbesserungen der Stabilität. Wer mit Bergamot Translate 0.3 noch Probleme feststellte, hat mit Firefox Translations 0.4 also vielleicht mehr Glück.

Firefox Translate 0.4

Installation von Firefox Translations

Vorbereitung für Nutzer von Bergamot Translate 0.3

Nutzer, welche noch Bergamot Translate 0.3 installiert haben, müssen diese Erweiterung zunächst deinstallieren. Durch die Umbenennung in Firefox Translations wird eine Installation von Firefox Translations 0.4 die alte Bergamot-Erweiterung nicht ersetzen.

Der Schalter dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled in about:config muss seit dem Nightly-Build vom 20.05.2021 nicht länger auf true stehen. Wer diesen Schalter für Bergamot Translate auf true gesetzt hat, sollte diesen also wieder auf false stellen.

Vorbereitung für neue Nutzer

Zur Installation wird nach wie vor eine aktuelle Nightly-Version von Firefox benötigt. Dabei müssen ein paar Einstellungen in about:config vorgenommen werden:

  • xpinstall.signatures.dev-root – Dieser Schalter muss manuell als Boolean-Schalter angelegt werden, falls noch nicht vorhanden, und auf true gesetzt werden.
  • xpinstall.signatures.required – Wer noch weitere Erweiterungen installiert hat, muss diesen Schalter auf false setzen und die Signatur-Pflicht für Erweiterungen damit deaktivieren, weil xpinstall.signatures.dev-root auf true ansonsten verursacht, dass alle anderen installierten Erweiterungen deaktiviert werden.

Installation von Firefox Translations 0.4

Nach diesen Vorbereitungen und einem Neustart von Firefox, damit die soeben durchgeführten Änderungen wirksam sind, kann die Erweiterung über diesen Link installiert werden. Anschließend muss noch sichergestellt werden, dass die Ausgangs-Sprache in den Spracheinstellungen von Firefox nicht auftaucht. Wenn in einem deutschsprachigen Firefox beispielsweise sowohl Deutsch als auch Englisch angegeben sind, erscheint auf einer englischsprachigen Website natürlich auch keine Übersetzungs-Leiste, da der Nutzer ja angegeben hat, Englisch zu verstehen. In dem Fall muss Englisch also zunächst entfernt werden.

Spracheinstellungen Firefox

Fazit

Firefox Translations zeigt bereits jetzt beeindruckende Ergebnisse. Zur Erinnerung: Für die Übersetzung von Websites findet keinerlei Datenübertragung an Google oder einen anderen Übersetzungs-Dienst statt, die Übersetzung erfolgt vollständig im Browser. Die Neuerungen von Firefox Translations 0.4 gegenüber der Ende März veröffentlichten Version 0.3 sind sinnvoll und ein wichtiger Schritt für die bevorstehende native Integration in Firefox.

Ausgehend von den großen Fortschritten in den letzten Monaten kann man gespannt sein, welche Verbesserungen die nächsten Versionen bringen werden. Auch eine Version für andere Browser ist geplant, der Fokus der Entwicklung liegt derzeit aber vollständig auf der Integration in Firefox. Feedback zur Erweiterung kann den Entwicklern auf GitHub mitgeteilt werden.

Der Beitrag Maschinelle Übersetzungen ohne Cloud: Firefox Translations 0.4 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

21. Mai 2021

Fr, 21. Mai 2021, Lioh Möller

Wer im Freundes- und Bekanntenkreis Linux empfiehlt, sieht sich oftmals mit der Frage konfrontiert, wie die Desktopoberfläche denn aussieht. Die Firma Canonical hatte dafür in der Vergangenheit einen Websimulator bereitgestellt, in dem man sich das Look & Feel des damals noch eingesetzten Unity-Desktops anschauen konnte.

Etwas Ähnliches hat nun der Entwickler yunyuyuan für Manjaro (KDE Plasma) auf die Beine gestellt.

Unter https://manjaro.halberd.cn/ haben Interessierte die Möglichkeit einen ersten Eindruck von der Oberfläche zu bekommen. Natürlich handelt es sich dabei nicht um ein vollwertiges Linux-System, sondern um eine Simulation. Dabei hat sich der Entwickler erstaunlich viel Mühe gegeben und Funktionen wie zum Beispiel einen Audio-Player, ein Fake-Terminal, gedit, vscode einen Bildbetrachter und einen Nachbau des Dateimanagers Dolphin bereits implementiert. Die Ähnlichkeit mit dem Original ist dabei verblüffend:

Das Projekt steht auf GitHub zur Verfügung und für die Zukunft sind noch weiter Funktionen geplant, wie zum Beispiel ein Video-Player, Office, KCalc und mehr. Implementiert wurde die Lösung in Vue.js und weiteren Webtechnologien.

Fr, 21. Mai 2021, Lioh Möller

Die Distribution Elive zählt seit jeher eher zu den Exoten. Sie basiert auf Debian GNU/Linux und ist mit der Enlightenment Desktopumgebung in der Version e16 ausgestattet.

Die neue Beta-Version 3.8.20 bringt einige Verbesserungen mit sich. Der Kernel wurde auf Version 5.10 aktualisiert und entsprechende proprietäre NVIDIA-Treiber werden bereits mitgeliefert. Die Darstellung von Schriften wurde optimiert und der Persistente-Modus bei der Nutzung im USB-Live-Modus verbessert. Die Applikation cinelerra gg wird nun direkt vom Projekt in der jeweils aktuellsten Version bereitgestellt.

Bei dem zum Einsatz kommenden cairo-dock wurde standardmässig Software-Rendering aktiviert, um ein mögliches Fehlverhalten zu minimieren. Die Zeitzone sollte automatisch erkannt werden, was bisher nicht immer der Fall war.

Kleinere Verbesserung fanden auch im Bereich des Desktops statt. So werden systray Icons wieder korrekt angezeigt und das iconify gadget behält auch nach einem Neustart des Systems seine zuvor definierte Position.

Quelle: https://www.elivecd.org/newsletter/beta-releases-10/

20. Mai 2021

Diese Woche hat eine der größten Firmen im Linux-Umfeld erfolgreich den Gang an die Börse geschafft. Zudem auch noch eine Firma mit Wurzeln in Deutschland. Es gab Berichte in allen großen Medien, teilweise sogar über die üblichen Agentur-Meldungen hinaus.

Ich bin ein großer (open)SUSE-Freund – das ist sicherlich bekannt – weil ich mit SUSE meine ersten Gehversuche unter Linux unternommen habe und finde, dass gerade in den letzten Jahren viel in die richtige Richtung lief. Eine Bilanz, die ich nicht für alle Bereiche des Linux-Ökosystems so ziehen würde. Natürlich habe deshalb neugierig die Meldungen zum Börsengang verfolgt.

Aber auch wenn man das Thema neutral betrachtet, ist SUSE eine der wichtigsten Firmen im Linux-Umfeld. Mit einem jährlichen Umsatz von knapp einer halben Milliarde US-Dollar und einer Börsenbewertung von nun ca. 5 Milliarden Euro ist SUSE zusammen mit Red Hat (das ja nun IBM gehört) einer der großen Player im Open Source Business. Ganz nebenbei gehört SUSE damit auch zu den größeren deutschen IT-Unternehmen.

Im Gegensatz zu seinem großen Konkurrenten hat SUSE eine bewegte Geschichte hinter sich. Novell, Attachmate, Micro Focus, zuletzt die Übernahme durch Private Equity Fonds und nun der Börsengang. Mehrfach hat man die Firma mit dem Chamäleon schon Tod gesagt.

Das Verhältnis zur Community hat sich nach Außen hin zuletzt entspannt. Die Produkte sind enger verzahnt denn je und openSUSE Leap und Tumbleweed haben einen erkennbaren Platz in der Strategie von SUSE.

Der Börsengang war dann auch einigen Medien eine Meldung wert. Immerhin handelte es sich dabei um einen der bisher größten Börsengänge des Jahres. Meistens die üblichen Meldungen wie bei Manager Magazin oder der SZ. Teilweise aber auch mit größeren Berichten wie bei tagesschau.de oder im Handelsblatt. Ich war ein bisschen überrascht davon, dass es bei Golem und Heise, die beide ja dem Anspruch nach IT-News für Profis bieten wollen, kaum über Agentur-Meldungen hinausgehende Berichte gab.

Lustig waren dafür die Kommentare auf Heise (ob der Redaktion die Kommentare eigentlich peinlich sind?). Wir wissen nun: Der durchschnittliche Heise-Kommentator ist mindestens Mitte 40 und hat in den letzten 20 Jahren keine ernst zu nehmende Position in einem ernst zu nehmenden Unternehmen bekleidet oder auch sonst nur relevante Einblicke erhalten, sondern sucht stattdessen in seinem Keller Pappkartons.

Ich denke man darf gespannt auf die weitere Entwicklung sein. Es ist gut für Linux neben Red Hat (IBM) auch noch eine weitere große Firma im Linux-Umfeld zu haben. Es ist außerdem sicherlich nicht schlecht für das Linux-Ökosystem, wenn ein Teil der Entwicklung auch durch originäre Open Source-Firmen vorangetrieben wird und nicht nur durch Firmen, die halt nebenbei auch zu Linux beitragen.

Dass diese Firma mit dem geglückten Börsengang nun auf etwas solideren Füßen steht ist zu begrüßen.

Der Artikel Börsengang von SUSE – Ein paar Bemerkungen erschien zuerst auf [Mer]Curius

Früher…

…war alles besser. Das stimmt leider nicht immer, aber in diesem Fall stimme ich dem Satz zu. Lange Zeit war das Freenode-IRC-Netzwerk ein zentraler Treffpunkt für Open-Source-Communities. Dies hat sich nun geändert. Wer die genauen Hintergründe wissen will, was passiert ist, dem kann ich Fuchs’ Rücktrittsschreiben ans Herzen legen. Er beschreibt recht ausführlich, was passiert ist und was dazu führte, dass Andrew Lee den Rücktritt aller (Ex)-Freenode-Staffer forderte, wogegen sich die Staffer weigerten und was zum Untergang freenodes führte. So traurig es auch ist, dass so etwas mit einem tollen Netzwerk wie Freenode passieren musste, war es trotzdme interessant, die (teils) recht wilden Spekulationen in #freenode zu lesen und gestern zu sehen, wie zuerst maßig Leute dem Channel beigetreten sind, um ihre Cloaks zurückzugeben, und jess danach erst die Bans für #freenode aufgelöst hatte, Tor-Exit-Nodes entbannt wurden und die Staffer zurücktraten. Als dann die Nachricht kam, dass Libera.Chat zur Verfügung stand, war der Ansturm auf den Freenode-Nachfolger so groß, dass zwischenzeitlich sogar ein Server ausfiel aufgrund des hohen Ansturmes und die Registrierungsmails kamen auch eher verzögert an.

Jetzt

Libera.chat ist der von den ehemaligen Freenode-Staffern gegründete Ersatz für Freenode und hinter dem IRC-Netzwerk steht ein schwedischer Verein. Das ganze Projekt ist natürlich noch etwas im Aufbau, aber einige Communities sind schon von Freenode auf Libera.chat umgezogen, manche überlegen noch, wie sie am Besten umziehen, viele Communities werden wohl zu Matrix oder Discord gehen (wobei Discord bei OSS-Projekten etwas ironisch auf mich wirkt) und vielleicht bleibt der ein oder andere Channel ja doch noch auf Freenode. Die Verbindung ist denkbar einfach. Man muss als Server nur irc.libera.chat angeben und der Port ist für SSL 6697 (beziehungsweise, für alle, die immernoch meinen auf SSL zu verzichten, ist der Port 6667). Die REgistrierung erfolgt via

/msg NickServ REGISTER nickname email@example.com

“nickname” und die E-Mail-Adresse natürlich anpassen :). Grundsätzlich wird man wahrscheinlich gar keinen so großen Unterschied zwischen außer dass noch nicht alle Kanäle gewechselt sind und wahrscheinlich das auch gar nicht alle machen werden.

Grundsätzlich ist es immer schade, wenn einem tollen Projekt, wie Freenode es war, so etwas passieren muss. Aber ich glaube, dass dies ein guter Weg ist, der mit libera.chat begangen wird und ich hoffe, dass das Projekt erfolgreich sein wird. Freenode schein mittlerweile auch die erste Spamwelle seit der Übernahme hinter sich zu haben, aber Andrew ist ja jetzt OP und sicher in der kompetenten Lage, da einzugreifen. Nichtsdestotrotz habe ich bei meinem (noch vorhandenem) Freenode-Account bei den Usermodus +R gesetzt.

Die ganze Aktion jetzt hat aber auch zur Folge, dass ihr Freenode nicht weiter untersützen müsst, aber Libera.Chat freut sich sicher über Spenden :)

PS: Ich habe überall (bis auf die URL) meinen Rechtschreibfehler von Liberia in Libera geändert.

19. Mai 2021

Anlässlich der Vorstellung des Tuxedo  Polaris 15 bei Holarse bin ich in den Genuß eines NOS (New Old Stuff) Games für Linux gekommen. 

Nun ist Cold War schon ganz schön angestaubt, weil mich das Genre aber interessiert, hat mich der Ehrgeiz gepackt und ich wollte sehen, ob man es zum laufen bringen kann und wieviel Aufwand dafür notwendig ist.

Ich besitze das 5 Jahre alte XC1506 von Tuxedo auf dem ich Debian Bullseye installiert habe, das war also die Grundvoraussetzung für mein Behühen.

Vor einigen Tagen kam dann das Päckchen mit dem Gewinn und etwas Devotionalien :-)

Mein Vorgehen war folgendermassen.

DVD in meinem externen DVD Reader eingelegt, automatisch mounten lassen und dann als root das install.sh ausgeführt.

Installation nach /usr/local/games/coldwar/

Als User mal coldwar aufgerufen ... funktionierte sofort aber ohne Sound.

Um das zu fixen habe ich  /usr/local/coldwar/lib nach lib2  kopiert(cp -r lib/ lib2), damit ich ein Backup habe. 

Dann in /usr/local/coldwar/lib bis auf
 
-rw-r--r-- 1 root root 440784 19. Mai 19:51 libopenal.so.0
-rwxr-xr-x 1 root root 434740 19. Mai 20:22 libSDL-1.2.so.0
-rwxr-xr-x 1 root root 434740 19. Mai 20:22 libSDL-1.2.so.0.7.2
-rw-r--r-- 1 root root    615 19. Mai 19:24 README

alles andere gelöscht.

Siehe da, nun klappt auch der Sound!

Noch kurz die Update gesucht und hier gefunden  lgp-patches/coldwar/ und auch hier: files.holarse.de/mirrors/updates.linuxgamepublishing.com/coldwar/ 

wie im Kommentar erwähnt wurde :-) Merkwürdig, dass ich das nicht gefunden hatte... man(n) wird alt.

Sogleich installiert. Rennt.

Ohne Maus ist es etwas schwer zu steuern, das Interfaces per Touchpad ist aber brauchbar, ich musste nur die Mausepfindlichkeit auf das Minimum reduzieren.

 

Anlässlich der Vorstellung des Tuxedo  Polaris 15 bei Holarse bin ich in den Genuß eines NOS (New Old Stuff) Games für Linux gekommen. 

Nun ist Cold War schon ganz schön angestaubt, weil mich das Genre aber interessiert, hat mich der Ehrgeiz gepackt und ich wollte sehen, ob man es zum laufen bringen kann und wieviel Aufwand dafür notwendig ist.

Ich besitze das 5 Jahre alte XC1506 von Tuxedo auf dem ich Debian Bullseye installiert habe, das war also die Grundvoraussetzung für mein Behühen.

Vor einigen Tagen kam dann das Päckchen mit dem Gewinn und etwas Devotionalien :-)

Mein Vorgehen war folgendermassen.

DVD in meinem externen DVD Reader eingelegt, automatisch mounten lassen und dann als root das install.sh ausgeführt.

Installation nach /usr/local/games/coldwar/

Als User mal coldwar aufgerufen ... funktionierte sofort aber ohne Sound.

Um das zu fixen habe ich  /usr/local/coldwar/lib nach lib2  kopiert(cp -r lib/ lib2), damit ich ein Backup habe. 

Dann in /usr/local/coldwar/lib bis auf
 
-rw-r--r-- 1 root root 440784 19. Mai 19:51 libopenal.so.0
-rwxr-xr-x 1 root root 434740 19. Mai 20:22 libSDL-1.2.so.0
-rwxr-xr-x 1 root root 434740 19. Mai 20:22 libSDL-1.2.so.0.7.2
-rw-r--r-- 1 root root    615 19. Mai 19:24 README

alles andere gelöscht.

Siehe da, nun klappt auch der Sound!

Noch kurz die Update gesucht und hier gefunden  lgp-patches/coldwar/ und auch hier: files.holarse.de/mirrors/updates.linuxgamepublishing.com/coldwar/ 

wie im Kommentar erwähnt wurde :-) Merkwürdig, dass ich das nicht gefunden hatte... man(n) wird alt.

Sogleich installiert. Rennt.

Ohne Maus ist es etwas schwer zu steuern, das Interfaces per Touchpad ist aber brauchbar, ich musste nur die Mausepfindlichkeit auf das Minimum reduzieren.

 

Mi, 19. Mai 2021, Niklas

Am Montag hat das NetBSD Projekt die Version 9.2 "Nakatomi Socrates" veröffentlicht. Da es sich hierbei um eine Minor Version handelt, besteht sie zu grössten Teilen aus Fehlerbehebungen. Die Menge an Änderungen ist jedoch beachtlich.

Das Highlight der neuen Version sind Verbesserungen am FREAD System Call im Kernel. Die Geschwindigkeit bei Lesezugriffen auf Datenträger wurde stark erhöht, indem die Pufferverwaltung für ungepufferte Zugriffe optimiert wurde.

Ausserdem wurde in der neuen Version die Stabilität der ZFS Dateisystemunterstützung verbessert. Auch die Unterstützung für die durch Single Board Computer immer mehr an Bedeutung gewinnende AArch64 CPU Architektur wurde verbessert.

NetBSD 9.2 behebt des Weiteren einige Treiberprobleme. Besonders nennenswert ist hier ein Problem mit einigen Intel Gigabit Ethernet Controllern, die auf Big Endian Systemen keine Pakete empfangen konnten.

Weiter wurde die Sicherheit an einigen Stellen im System verbessert. Beim Linux-Kompatibilitätslayer wurde die Kompatibilität zu Programmen verbessert, die eine längere namelen nutzen, als die Grösse eines korrekten struct sockaddr_in *.

Auch bei den Programmen hat sich einiges getan:

  • Der Judäische Kalender wurde auf 2021 aktualisiert
  • Die Standardkonfiguration des Window Managers wurde für mehr Barrierefreiheit optimiert
  • Bugfix: ftp -q hat nicht funktioniert
  • Die POSIX-konformität bei nl wurde verbessert
  • Bei patch wurde das Verhalten von -V none repariert
  • progress kann jetzt mit EINTR beim Schreiben umgehen
  • Bei ps wurde die Berechnung der Breite unter bestimmten Umständen repariert
  • Bugfix: "ksh unable to execute ERR traps"
  • Bugfix: sh kann jetzt mit "NUL" Zeichen in Shell Scripts umgehen
  • Die pkgsrc Datenbank wurde für neue Installationen von /var/db/pkg zu /var/pkg/pkgdb verschoben
  • vmstat wird nicht mehr beendet, wenn es die Adressen von Zeit-Werten nicht bekommt, die sowieso oft nicht gebraucht werden
  • httpd Webserver:
    • Unterstützung für README Dateien in Dateilisten eingeführt
    • Mehr MIME Types für verschiedene Archiv- und Videodateien eingefügt
    • Bugfix: Dateien grösser als 4 GB auf 32Bit Systemen ausliefern
    • Verschiedene Stabilitätsverbesserungen
  • Bugfix: dump unterstützt jetzt Statusupdates bei Dateien grösser als 2 TiB
  • Bugfix: prop_object_release von falschen Daten bei fsck
  • Bugfix: "cannot allocate memory" Fehler in isibootd bei amd64

Die neue Version kann von der Webseite des Projekts heruntergeladen werden. Bestehende Installationen können über die Upgrade-Funktion im Installationsimage oder mithilfe des sysupgrade Tools im laufenden NetBSD System aktualisiert werden - Eine Neuinstallation ist nicht nötig.

Quellen:

Hinweis: Der Screenshot stammt aus dem Review der Vorgängerversion

Die meisten Menschen, die diesen Blog lesen, wissen, dass Freenode ein IRC-Netzwerk ist und viele haben es entweder im IRC-Channel oder in den unterschiedlichen sozialen Netzwerken mitbekommen, dass bei Freenode im Moment Einiges am Brodeln ist.

Wir, die wir das schon recht früh in einem IRC-Kanal mitbekommen haben, wurden gebeten, uns doch bitte etwas zurückzuhalten und damit nicht an die Öffentlichkeit zu gehen - aber zum Einen ist jetzt schon recht viel “geleakt” worden und zum anderen will ich, dass alle darüber Bescheid wissen.

Ein gewisser reicher Mensch, Andrew Lee meint aktuell Freenode übernehmen zu wollen. Damit sind allerdings die aktuellen Freenode-Staffer nicht zufrieden und wollen das nicht - vollkommen zurecht!

Die Staffer wollen zurücktreten, wenn Andrew Lee sich durchsetzt, wonach es aktuell aussieht. Ich will das hier aber auch nciht genau und haarklein zerreisen - auch weil ich dazu keinen Nerv habe und mich das tatsächlich etwas mitnimmt, obwohl es mich im Moment eigentlich nicht interessieren muss. Ich habe trotzdem Sorgen, dass wegen solch einem Typ ein wirklich tolles Netzwerk droht, zu zerfallen.

Ich denke, es ist an der Zeit, dass man dagegen friedlich vorgeht und sich informiert. Bitte teilt diese Informationen auch in euren anderen Communities mit und hoffentlich (auch wenn ich, als Pessimist, der ich nun einmal zu sein scheine, nicht so recht daran glaube) bleibt Freenode ja wie es ist.

Eine recht ausführliche Erklärung zu dem Unfug, der gerade getrieben wird findet man hier:

Es ist einfach grausam, wenn wegen so einem Scheiß solch eine tolle Community-Plattform, droht zu sterben.

Wer ein Channel-Operator eines Freenode-Channels ist, wird von mir hiermit gebeten folgenden Brief mit zu unterschreiben (habe ich auch gemacht):

Ich kann hier trotzdem verkünden, dass es schon einen Nachfolger für Freenode gibt, werde den Namen hier aber noch nicht erzählen. Entweder man weiß ihn schon, oder man weiß ihn ncoh nicht und wird ihn schon noch früh genug erfahren. Aber wenn schon jetzt auf dieses neue Netzwerk gewechselt wird, macht das den Eindruck, als würde man vor dem Feind fliehen und diesen Eindruck sollte man nie auf andere machen.

Wer sich außerdem wundert, wieso ich oben auf eine alte Version des Wikipedia-Artikels zu Andrew Lee aka realrasengan aka rasengan, der gerne Kontrolle über sämtliche privaten Daten von Freenode hätte, verlinkt habe, kann ja mal in der Versionsgeschichte nachschauen… ;)

PS: [In eigener Sache] Ich werde diesen Artikel auf meinem Blog oben anheften und auf meinem Blog zu der Sache weiterhin Updates veröffentlichen.

Update

Wichtig: Ändert eure Passwörter und E-Mail-Addressen auf Freenode:

 /msg NickServ help set password
 /msg NickServ help set email

Weitere kleine Updates findet man auf Mastodon und ubuntuusers

Update

Der Nachfolger von freenode, libera.chat ist bereit. Mehr gibt es morgen!

18. Mai 2021

Die MZLA Technologies Corporation hat mit Thunderbird 78.10.2 ein Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 78.10.2

Mit dem Update auf Thunderbird 78.10.2 hat die MZLA Technologies Corporation ein Update für seinen Open Source E-Mail-Client veröffentlicht. Mit dem Update behebt MZLA mehrere Fehler, welche überwiegend in Zusammenhang mit der OpenPGP-Implementierung stehen. Dazu kommen kleinere Darstellungs-Fixes. Außerdem zeigt der Add-ons Manager in den Details jetzt ein Icon zum Öffnen der Einstellungen an, wenn eine Erweiterung eine Einstellungsoberfläche implementiert hat. Dazu kommen zwei geschlossene Sicherheitslücken in Zusammenhang mit OpenPGP, deren Gefahrenpotential als niedrig eingestuft wird.

Der Beitrag Thunderbird 78.10.2 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

Di, 18. Mai 2021, Joël Schurter

Die auf OpenSUSE basierende Linux-Distribution hat gestern eine neue Version für ihre Rolling-Sparte veröffentlicht. Neu wird bei einer Installation von GeckoLinux standardmässig btrfs als Dateisystem genutzt. Des Weiteren wurden auch einige Desktops und andere Pakete aktualisiert.

In dieser Version wurde an vielen Ecken und Enden geschliffen, insbesondere was die Desktops und die Benutzerfreundlichkeit angeht.

Durch einen "Mehrheitsbeschluss" wurde nun das Standard-Dateisystem im Installer gewechselt. Deshalb ist nun in den verschiedenen auf Calamares basierenden Installationsprogrammen das Dateisystem btrfs mit transparenter Zstd-Datenkompression standardmässig eingestellt. Natürlich werden auch alle anderen modernen Linux-Dateisysteme weiterhin über die Option "Custom Partitioning" unterstützt.

Darüber hinaus ist zRAM-Swap von Haus aus aktiviert und auch der EarlyOOM-Daemon ist ebenfalls aktiviert. Dieser dient dazu, nicht wiederherstellbare Systemeinfrierungen in Situationen mit wenig Speicher zu verhindern.

Für Benutzer von neuerer Ryzen-Hardware ist der xf86-video-amdgpu-Treiber ab diesem Update verfügbar. Ausserdem gibt es Verbesserungen im Skript des Sprachinstallationsprogramms, um es zuverlässiger und kompatibel mit zukünftigen Paket-Updates zu machen.
Dazu wird geraten, den Wiki-Artikel zur Verwendung von anderen Sprachen zu beachten.

Ebenfalls aktualisiert wurden die folgenden Desktops:

  • Gnome auf Version 40
  • Cinnamon 4.8.6
  • Plasma 5.21.5
  • Budgie 10.5.3
  • LXQt 0.17
  • XFCE 4.16
  • Mate 1.24
  • Pantheon (verschiedene Komponenten mit eigenen Versionen)

Weitere Änderungen und Updates sind im Changelog und den Quellen nachzulesen:

Release Notes: https://github.com/geckolinux/geckolinux-project/releases/tag/210517.999

https://9to5linux.com/geckolinux-switches-to-btrfs-by-default-now-offers-gnome-40-1-lxqt-0-17-and-budgie-10-5-3

Di, 18. Mai 2021, Niklas

NomadBSD ist ein FreeBSD-Derivat, das für Live DVDs oder auch als fest installiertes Betriebssystem verwendet werden kann und direkt einen modernen, benutzerfreundlichen Desktop auf Basis von Openbox und Plank mitbringt (wir haben es vorgestellt).

Der bedeutendste Unterschied dabei ist, das jetzt FreeBSD 13.0-RELEASE als Basis benutzt wird. Das bedeutet, dass viele bedeutende Verbesserungen am FreeBSD Kernel (wir berichteten) ihren Weg nun auch in NomadBSD gefunden haben. Durch zahlreiche neue Treiber in FreeBSD 13 profitieren vor allem neuere Geräte von dem Update.

Ausserdem wurde das Versionsschema geändert. Zuerst kommt die FreeBSD Version mit Major Version, Minor Version und Art der Version (ALPHA/BETA/RC/RELEASE). Aus FreeBSD 13.0-RELEASE wird so NomadBSD 130R. Darauf folgt das Datum, an dem die Version veröffentlicht wurde, beginnend beim Jahr, dann Monat und zum Schluss der Tag.

Diese Umstellung wurde nötig, weil man in Zukunft mehrere NomadBSD Versionen auf Basis verschiedener FreeBSD Versionen anbieten möchte. Früher gab es immer nur eine aktuelle NomadBSD Version nach dem Versionsschema 1.X.

Des Weiteren wurde die Partitionierung auf 1M verändert, um die Schreibgeschwindigkeit auf Flash Speichern wie SSDs und USB-Sticks zu verbessern. Es wurden auch Treiber für virtuelle Maschinen von VMware hinzugefügt und ein Fehler behoben, durch den GLX deaktiviert war.

Quelle: https://nomadbsd.org/#130R-20210508

Hinweis: Der Screenshot stammt aus dem Review der Vorgängerversion

Di, 18. Mai 2021, Joël Schurter

Die Entwickler der Livesystem-Distribution Tails haben dazu aufgerufen, die neueste Version 4.19 rc1 zu testen. In der Vergangenheit gab es immer wieder Probleme und Missverständnisse bezüglich der Verbindung zum Tor-Netzwerk, dies soll mit dieser Version deutlich verbessert werden.

Insbesondere folgende Bereiche/Szenarien sollten laut den Entwicklern getestet und bei Fehlern gemeldet werden:

  • sich von einer WLAN-Verbindung mit Internetanschluss trennen und danach mit einer WLAN-Verbindung ohne Internetanbindung verbinden
  • Via Proxy mit dem Internet verbinden
  • wenn man sich mit Bridges (Brücken) mit Tor verbindet, jedoch die Verbindung nicht hergestellt werden kann.
  • Tails starten, wenn man noch nicht mit einem Netzwerk verbunden ist

Um die Tests möglichst genau und aufschlussreich durchzuführen, hat Tails hier einige Tipps und Tricks zusammengestellt.

Natürlich wurden auch hier einige Bugs behoben, neue Funktionen hinzugefügt und Anwendungen aktualisiert.

Folgende Neuerungen und Änderungen sind in der neuen Tails-Version 4.19, welche am 1. Juni 2021 erscheinen soll, zu erwarten:

  • Verbesserte Netzwerk-Hardware-Erkennung (z.B. falls eine WLAN-Karte nicht unterstützt wird)
  • Tor-Brücken dauerhaft im Speicher ablegen
  • Erkennung von Captive Portals, z.B. in manchen Hotels und anderen öffentlichen WLAN-Hotspots

Weitere Änderungen, Testszenarien etc. sind im Changelog nachzulesen:

https://gitlab.tails.boum.org/tails/tails/-/raw/4.19-rc1/debian/changelog

Die Entscheidung zwischen den großen Betriebssystemrichtungen fällt bei mir ziemlich schnell. Das System mit dem Apfel fällt für mich raus, weil ich keine 1000€ für einen Laptop ausgeben will, wenn man gute Businesslaptops schon für weniger als 500€ haben kann. Somit gibt es für die meisten Menschen nur noch dieses wundervolle System aus Redmond. Version 7 davon war ein wirklich tolles Betriebssystem mit einer meiner Meinung nach intuitiven Benutzeroberfläche und vielen netten Details. Ich weiß nicht so recht, wer auf die Idee kam, mit Windows 8 mit allen bisherigen Gewohnheiten der Windowsnutzer zu brechen und einmal den gesamten Desktop auf den Kopf zu stellen. Ich verstehe immer noch nicht, warum es “da” Entwickler gibt, die denken, dass man den Desktop in ein übergroßes Smartphone verwandeln muss. Ich zumindest will das nicht - und viele Andere wollten sich die Benutzeroberfläche von Win8 nicht antun und sind deshalb bei Version 7 geblieben. Das ging natürlich auch nicht an der Firma dieses unglaublich sympathischen Mannes vorbei, die hinter diesem “Betriebssystem” steht und es musste einen neue Windows-Version her: Windows 10 entsteht! Zur Oberfläche von Windows 10 hat Gerrit eine emotionale Zusammenfassung geliefert. Ich persönlich sehe Windows 10 als die “logische” (Logik scheint auch immer relativ zu sein…) Weiterentwicklung von Windows 8 und den Weg, den man versucht hatte, um dieses OS zu retten. Tatsächlich wirkt Windows 10 etwas stümperhaft zusammengeschustert mit Elementen aller bisheriger Windows-Versionen und will trotzdem mit den bekannten Regeln brechen und anders sein. Die Idee dahinter mag gut sein, ist aber meiner Meinung nach nicht sonderlich gut umgesetzt.

Da ich aber mit vielen Programmen arbeite, die es zum Großteil nur für Win, ApfelOS und Linux gibt, fallen für mich andere alternative - zum Teil auch vielversprechende - Betriebssysteme wie HaikuOS aus dem Wettbewerb heraus und es gibt eigentlich nur eine wirkliche Alternative: Linux!

Jetzt ist das ja nicht so einfach, weil es ja nicht ein “Linux” gibt. Wie bekannt ist Linux ja eigentlich nur der Betriebssystemkernel und das was landläufig als “Linux” bezeichnet wird, sind Distributionen, von denen es ja nicht so wenige gibt. Jetzt gibt es ja Stimmen, die eher für eine große einheitliche Linux-Distribution sind; ich bin da nicht für und finde diese Vielfalt zwar manchmal verwirrend, aber dennoch gut - warum dem so ist, habe ich schoneinmal erläutert.

Ich will so viel wie möglich über die normale Paketverwaltung installieren (und nicht über Flatpaks, Snaps, AppImages etc.pp.), also bleiben eigentlich nur noch ein paar große Distris übrig:

  • Debian und seine Ableger
  • Ubuntu (ja ich weiß, dass das ein Debian-Derivat ist, aber ich behandle es doch einmal gesondert)
  • Arch Linux
  • RHEL & Fedora und die jeweiligen Ableger

Vor allem was den letzten Punkt betrifft, kann ich nicht viel sagen, da ich weder RHEL, noch Fedora, noch einen Ableger der beiden jemals getestet habe, aber der Vollständigkeit wegen zähle ich sie trotzdem auf, da sie ja recht verbreitet und wohl auch nicht so schlecht sind.

Ich selber leide sicher nicht an Versionitis, brauche also auch nicht immer die neuesten Versionen. Mir ist wichtig, dass ich mich auf mein Betriebssystem verlassen kann, dass es täglich funktioniert, ich möglichst lange Updates erhalte und ich erwarte, dass ich eigentlich auch möglichst schnell Bugfixes erhalte. B Mein Einstieg in Linux fand mit einem Ubuntu-Derivat statt, das recht nah an Ubuntu ist, hauptsächlich etwas Theming betreibt und ein paar eigene Programme mitliefert. Dadurch bin ich dann durch ein paar Anleitungen im Wiki zu der wirklich tollen Community auf ubuntuusers.de gelangen und habe mich Ende letzten Jahres dort angemeldet. Ubuntu habe ich seitdem wirklich liebgewonnen und benutze es (bzw. das oben schon angesprochene Derivat Linux Lite) gerne. Wenn man sich mit Ubuntu intensiv auseinandersetzt, hört von Debian und beschäftigt sich früher oder später auch damit. Sowohl Debian als auch Ubuntu haben den Ruf, möglichst stabil zu laufen - und das stimmt so auch; ich hatte es bisher zumindest noch nie, dass Ubuntu plötzlich abgestürzt wäre und die meisten Fehler, die im Forum mit solchen oder so ähnlichen Problemen auftauchen sind im Regelfall selbstverschuldet. Wie gesagt: im Regelfall! Immer wieder gibt es auch Probleme, die durch Bugs ausgelöst werden, allerdings ist die Quote, was das betrifft, eher gering. Hier kommen wir aber auch zu einem großen Nachteil an diesen “stabilen” Betriebssystemen. Ein Bug muss ersteinmal gemeldet werden und dann bearbeitet werden. Die Änderungen landen, sofern sich überhaupt jemand des Bugreports animmt, bei Ubuntu ersteinmal in den Proposed-Quellen und werden dann später erst in die eigentlichen Quellen geschoben - das kann alles insgesamt schon einmal etwa zwei Wochen dauern. Man hat dann also zwei Wochen einen nervenden Bug. Ein im Moment recht prominentes Beispiel, war der Bug, der ein Ubuntu-Upgrade von Ubuntu 20.10 auf die aktuelle STS-Version 21.04 verhinderte. Der Bug wurde am 19.04.2021 auf Launchpad gemeldet, eine Fehlerkorrektur kam am 6.5.2021 in die Proposed-Quellen und am 11.5.2021 in die normalen Quellen für Updates. Und liebe Ubuntu-Entwickler (das was ich hier schreibe, gilt für die Debian-Entwickler und alle anderen Entwickler ebenso): Danke für eure Arbeit! Das ist gut so und macht so weiter, aber der ein oder andere Bug ist störend, wenn er gut drei Wochen offen ist.

Natürlich können in den vermeintlichen Bugfixes auch neue Bugs sein und von daher ist es sinnvoll, dass nicht alles im Akkordtempo in die normalen Quellen geschoben wird, sondern vorher getestet wird - gerade bei einer Distribution, die sich selbst das Ziel gesetzt hat, einsteigerfreundlich zu sein.

Leider, leider hat es bisher weder Ubuntu, Debian noch irgendeine Rolling-Release-Distribution geschafft, Bug 1 zu fixen. :)

Bisher habe ich hier in diesem Text Ubuntu und Debian eher zusammen behandelt. Wenn man mal von dem “Ballast”, den Ubuntu mit sich herumschleppt (z.B. Snaps, früher die Amazon-Integrierung) absieht, könnte man den Einruck bekommen, Ubuntu sei ein Debian in warmen Farben. Jetzt nehmen wir uns mal ein reguläres Debian-Installations-Medium und eines von Ubuntu. Wenn wir jetzt das Debian-Medium starten, werden wir früher oder später während der Installation gefragt, ob und wenn ja welche Desktopumgebung wir haben wollen. Das gibt es bei Ubuntu so nicht. Es gibt für jedes offizielle Derivat ein eigenes Image und dann noch das offizielle Image mit GNOME und das Server-Image ohne irgendeine Desktopumgebung. Wenn man sich außerdem mal eine Debian-Installation und eine Ubuntu-Installation anschaut, so sind bei Ubuntu wahrscheinlich meistens deutlich mehr Programme installiert, als bei Debian.

Das ist ein großer Punkt, bei dem man bei Distributionen unterscheiden muss: Es gibt Distributionen, die alles vorkonfiguriert und vorinstalliert haben (so Ubuntu) und es gibt die Distributionen, die dem Nutzer viel Wahl geben, wie er sein System gestalten will (so Debian und Arch). Das ist auch genau der Punkt, warum ich Debian und Ubuntu weiter oben in der Aufzählung getrennt habe (ganz abgesehen davon, dass Ubuntu recht autark arbeitet und sich (leider?) nur seht wenig von Debian beeinflussen lässt).

Während Debian und Ubuntu in vielen Punkten ähnlich (beziehungsweise vom Unterbau fast identisch) sind, geht Arch einen völlig anderen Weg.

Arch perfektioniert das Ziel, den Benutzer alles beeinflussen zu lassen. Das hat dann zwar zur Folge, dass die Installation rein auf Textebene ist und man (außer man installiert explizit etwas Anderes) auch nur ein System ohne irgendeinen Schnickschnack hat. Ich musste bei meiner Arch-Installation sogar die usbutils nachinstallieren. Was Arch außerdem von allen anderen hier genannten Distributionen unterscheidet, ist die Tatsache, dass es eine Rolling-Release-Distribution ist. Das bedeutet, dass man nicht alle 3 Jahre eine neue Version installieren muss, sondern jeden Tag mittels des Befehles pacman -Syu seine Installation auf den neuesten Stand bringt. Arch liefert außerdem eigentlich alles so gut wie ungepatcht aus, was vom Upstream an Paketen kommt. Wobei man hier anmerken muss, dass Arch auch so etwas wie die Proposed-Quellen unter Ubuntu hat, nur landen Änderungen sehr viel schneller in den regulären Quellen.

Arch Linux hat den Ruf eine Distri für fortgeschrittene Benutzer zu sein, weil man alles selbst machen muss und eigentlich nichts vorkonfiguriert ist. Das hat natürlich Vor- und Nachteile. Ein enormer Nachteil ist natürlich der Zeitaufwand, den man dafür aufbringen muss, dafür weiß man am Ende aber auch ziemlich genau, was das eigene System eigentlich so treibt und am Ende ist man wahrscheinlich selbst schuld für die meisten Fehler, weiß dann aber im Idealfall auch, wo man suchen muss. Außerdem gilt Arch als eine instabile Distribution, die häufiger mit Bugs zu kämpfen hat, weil ja alles direkt vom Upstream übernommen wird. Tatsächlich ist die Instabilität von Arch Linux wohl eher ein Mythos, der aus der Anfangszeit der Distribution stammt. Ich benutze Arch jetzt seit bald 2 Monaten und hatte bisher genau einen(!) Bug, den ich wirklich bemerkt hatte. Durch ein Update von GTK+ konnte Thunar nicht mehr starten und ich bin dann vorübergehend auf Natilus ausgewichen. Dieser Fehler war allerdings schon am nächsten Tag durch ein Update behoben und ich konnte Thunar wieder wie gewohnt nutzen! Andere (langjährige) Archnutzer haben mir berichtet, dass sie bisher in der ganzen Zeit noch nie durch einen Bug eingeschränkt wurden. Trotzdem würde ich Arch nicht als eine Einsteigerdistribution bezeichnen. Zwar ist man recht gut bedient, wenn man wirklich Willens ist und es gibt nichts was man nicht mithilfe der Wikis von Arch und dem von ubuntuusers lösen könnte (gut dann ist halt etwas Transferleistung gefragt), aber ich habe zum Beispiel mein allererstes Linux so verbastelt, das ich nicht glaube, dass damit irgendjemand gerne sicher gearbeitet hätte und bin deshalb froh, dass ich diese Installation sowieso stilllegen musste, weil sie keinen Support mehr hatte und das gibt es eben so bei Arch nicht, da man sein System ja kontinuierlich aktuell hält.

Natürlich gibt es wenn man gerne “so etwas wie ein Rolling-Release” haben möchte, andere Alternativen. Wenn man sich zum Beispiel schon besser mit Debian respektive Ubuntu auskennt, ist vielleicht Debian Sid (oder das darauf aufbauende Siduction) eine schöne Alternative. Hierbei setzt man immer auf den Entwicklungszweig von Debian und muss nicht regelmäßig ein Dist-Upgrade von einer Debian-Version auf die Andere machen, sondern ist immer auf dem neuesten Stand (den Debian anbietet). Meiner Erfahrung (bisher allerdings nur in VMs) ist Sid eine recht gute Mischung aus aktueller Software und Debian-Stabilität. Man kann hier aber weder erwarten, dass man das selbe hat, wie bei einem normalen Debian Stable oder bei einem Arch. Außerdem gibt es für die Ubuntu-Nutzer auch einen Entwicklungszweig, mit dem man theoretisch sein System in ein Semi-Rolling-Release verwandeln kann. Da gibt es sogar ein Skript von Martin Wimpress. Inwiefern das sinnvoll kann jeder für sich selber entscheiden. Ich würde das allerdings nicht auf einem Produktivsystem machen!!

Wie schon erwähnt kann ich (leider) noch nichts zu RHEL, Fedora, openSUSE etc. sagen beziehungsweise schreiben.

Für jeden sind andere Distributionen passend und natürlich hat da jeder seine Präferenzen, aber ich habe auch meine:

Grundsätzlich habe ich mittlerweile wirklich Gefallen an Arch gefunden, auf den fremden Rechnern, die ich administriere kommt aber immer noch ein Ubuntu oder ein Derivat darauf, weil sich das System in meiner Erfahrung als sehr stabil und zuverlässig erwiesen hat und ich verstehe auch, warum Unternehmen eher LTS-Distributionen einsetzen. In nächster Zeit - bin ich mir sicher - landet bei mir irgendwo auf einer Festplatte sicher noch Debian Sid.

17. Mai 2021

Mo, 17. Mai 2021, Ralf Hersel

Die GNU/Linux-Distribution Deepin ist in der neuen Version 20.2.1 erschienen. Die chinesische Distro wird von Wuhan Deepin Technology entwickelt und gilt als eine der schönsten GNU/Linux-Distributionen aus dem Osten. Sie bietet ein sicheres, zuverlässiges und einfach zu bedienendes Betriebssystem, da es die letzte stabile Version von Debian (10.9 Buster) verwendet.

Die Debian-basierte Distribution, hat eine angepasste Oberfläche, den Deepin-Desktop mit den dazugehörigen Werkzeugen. Das Projekt hat am letzten Donnerstag eine neue stabile Version 20.2.1 veröffentlicht. Das neue Major-Release bringt eine Menge Verbesserungen, die das Betriebssystem deutlich schneller machen.

"In Deepin 20.2.1 wurde die Betriebsleistung der Prozessoren, die Netzwerkübertragung und -antwort, das Lesen und Schreiben von Dateien und die Grafik durch Optimierung der Konfiguration und des Kernels deutlich verbessert. Und der konventionelle Betrieb wurde vollständig optimiert. Mit diesen Verbesserungen geniessen Sie ein reibungsloseres Erlebnis und schnellere Reaktionen", so das Projektteam.

Tipps zur neuen Version und mehr zu den neuen Funktionen von Deepin 20.2.1 finden sich in der Release-Ankündigung.

Quelle: https://www.deepin.org/en/2021/05/13/deepin-20-2-1/

Dies ist ein Update zu den Beiträgen:

  1. Konzept zum Deployment meines Blogs mit Ansible und
  2. Erfahrungsbericht zum Deployment meines Blogs mit Ansible.

Umgebung

Aktuell nutze ich als Ansible Control Node (ACN) ein Debian Buster mit Ansible 2.7.7. Die Backups liegen wie gehabt auf einem Speicher im lokalen Heimnetzwerk.

Als Zielsysteme für die Wiederherstellung dienen ein Debian 10 (Buster) und Debian Testing (das kommende Bullseye). Bei beiden Zielsystemen handelt es sich um minimale Installation in zwei VMs auf einem KVM-Hypervisor.

Ablauf

Zuerst habe ich meinen Blog aus dem Backup auf der Debian 10 VM wiederhergestellt. Dabei gab es tatsächlich ein Problem. Das VHOST-Template für den Webserver entsprach nicht mehr der Version, die auf dem Produktivsystem zum Einsatz kommt. Ich hatte schlicht vergessen, die Änderung nachzupflegen. Der Fehler wurde schnell identifiziert und behoben. Anschließend verlief der Wiederherstellungsprozess reibungslos.

Beim zweiten Versuch erfolgte die Wiederherstellung auf einer VM mit Debian Testing (Bullseye). Dieser Test ist für mich wichtig, um zu sehen, ob ich meinen Blog auch auf der kommenden stabilen Debian-Version ausrollen kann. Hier waren etwas mehr Anpassungen an der Rolle „deploy-my-blog“ notwendig, um dieses Blog erfolgreich wiederherstellen zu können. So haben sich einige Paketnamen geändert:

Alter NameNeuer Name
python-aptpython3-apt
python-mysqldbpython3-mysqldb
Gegenüberstellung der alten und neuen Paketnamen

Doch auch an der VM selbst war ein manueller Eingriff notwendig, bevor sich mein ACN überhaupt mit dem Node verbinden konnte. Ansible konnte auf dem Node keinen Python-Interpreter finden. Ich schiebe die Schuld der Version 2.7.7 in die Schuhe. Nachdem ich einen Symlink von /usr/bin/python auf /usr/bin/python3 erstellt hatte, klappte der Zugriff.

Der letzte Stolperstein war php-fpm. Kommt unter Buster Version 7.3 zum Einsatz so ist dies unter Bullseye 7.4. Da die Versionsnummer in meiner Ansible-Rolle hart verdrahtet ist, war auch hier eine Anpassung notwendig. Anschließend gelang auch hier die Wiederherstellung.

Fazit

Grundsätzlich klappte die Wiederherstellung wie gewohnt. Den Fehler mit der VHOST-Datei könnte ich zukünftig vermeiden, indem ich diese einfach mit aus dem Backup wiederherstelle, statt ein Template zu nutzen.

Das bei der Wiederherstellung auf einer neueren Betriebssystemversion Anpassungen erforderlich sind, hatte ich erwartet. Diese halten sich meiner Meinung nach in Grenzen und sind akzeptabel.

Die längste Zeit beanspruchte das Kopieren der Backups auf die Zielsysteme. Die eigentliche Wiederherstellung war mit den Stolpersteinen in 10-15 Minuten. Mit fehlerbereinigter Rolle sogar nur noch ca. 5 Minuten. Eine manuelle Wiedereinrichtung hat mich früher eher zwischen 30-60 Minuten gekostet. Von daher bin ich sehr zufrieden.

16. Mai 2021

Seit etwas über einem Jahr arbeite ich bei GitLab und habe engen Kontakt mit Kunden, die entweder schon GitLab einsetzen oder bald einsetzen werden. Ein Thema was zuletzt immer häufiger aufkommt, ist das Thema „Monorepo“. Noch spannender ist, wie einige Kunden sagen, sie haben „mehrere Monorepos“, was keinen Sinn ergibt. Denn nicht umsonst setzt sich das Wort auf „mono“ und „repo“ zusammen, also „einzel“ und „Repository“. Im Endeffekt hat man also ein großes Repository wo der komplette Quellcode enthalten und verwaltet wird. Jedes Mal, wenn ein Kunde von „mehreren Monorepos“ spricht, dann zwickt mein Auge immer wieder stark, denn meistens ist damit eigentlich nur gemeint, dass es sich um „Multi-Projekt Repositorys“ handelt. Also sind es meist eher Repositorys wo mehrere Projekte innerhalb eines Repositorys verwaltet werden.

Stellenweise finden sich im Internet diverse Blogposts wo Monorepos die Abkürzung von „monolithisches Repository“ ist. Das ist nicht die Definition, die ich wählen würde und auch nicht die, die gängig verbreitet ist. Ein Monolith aus Sicht der Software-Entwicklung kann schließlich auch aus mehreren Repositorys bestehen – und tut es in vielen Umgebungen auch. Überschneidungen gibt es hier aber sicherlich.

Echte Monorepos finden sich in der freien Wildbahn eher selten. Der wohl bekannteste Vertreter ist Google. Google hat für ihre internen Tools ein großes Repository, was nicht auf Git aufsetzt, sondern eine proprietäre Eigenentwicklung ist. Enthalten ist dort der Quellcode und die Versionshistorie der ganzen Firma seit Anbeginn der Zeit. In einem Paper von Juli 2016 beschreiben sie recht ausführlich, wie ihr Monorepo aufgebaut ist, wie sie damit Arbeiten und wie groß es mittlerweile ist. Wem die Details interessieren, sollte da mal reinlesen. Knapp 5 Jahre später dürfte das Repository noch deutlich riesiger geworden sein.

Ein weiterer bekannter Nutzer von Monorepos sind weitere große Techfirmen wie Facebook, Microsoft oder Twitter. Bei jeder Firma dürfte die Nutzung durchaus unterschiedlich sein. Facebook setzt beispielsweise auf Mercurial als SCM tool. Details darüber schrieben sie im Blogpost „Scaling Mercurial at Facebook“. Der Artikel ist von Januar 2014, also auch schon etwas älter.

Warum überhaupt Monorepos?

Egal ob man mit multiplen Repositorys arbeitet oder mit einem Monorepo: Beide Varianten haben je nach betrachteten Aspekt Vor- und Nachteile. Während man bei einem Monorepo-Ansatz vielleicht nicht die Probleme des Multi-Repo-Ansatzes hat, bekommt man stattdessen andere Herausforderungen.

Statt hier plump die Vor- und Nachteile beider Varianten einzugehen, verfolge ich hier einen etwas anderen Ansatz und beleuchte einzelne Aspekte und Methodiken mit beiden Varianten. Dies betrifft sowohl technische Herausforderungen vom eingesetzten Versionsverwaltungsprogramm, als auch die Build-Tools, sowie die Arbeitsweise.

Internes Dependency-Managements

Ein wichtiger Grund für ein Monorepo (oder auch Multi-Projekt-Repository) ist die vereinfachte Möglichkeit des Managements von internen Abhängigkeiten. Und dieser Use-Case ist generell gar nicht mal so selten.

Häufig sieht es so aus, dass es innerhalb einer Firma mehrere Projekte gibt, welche die gleiche Abhängigkeit nutzen. Soweit nichts Besonderes. Aber wie sieht nun der Vorgang aus, wenn eine Änderung an der Abhängigkeit gemacht werden muss?

Im klassischen Konzept, also ohne einem Monorepo, werden gleich jeweils eine Änderung an zwei Repositorys benötigt: Einmal in der Library, wo die eigentliche Änderung durchgeführt wird und anschließend die nächste Änderung im Hauptprojekt. Diese ist allerdings abhängig von der Änderung der Abhängigkeit. Hier muss also erst einmal abgewartet werden, bis die Änderung eingeflossen ist, bevor so wirklich die Änderung im Hauptprojekt gemacht werden kann. Der Prozess dauert also automatisch etwas länger und führt zu längeren Entwicklungszeiten. Zusätzlich könnte auch noch sein, das mehrere Projekte diese Abhängigkeit verwenden und diese auch eine Änderung benötigen, diese muss – auch wenn es sich vielleicht nur um eine kleine Anpassung handelt – in jedem Projekt nachgepflegt werden.

Hier ist also schonmal ein wesentlicher Vorteil von Monorepos beziehungsweise Multi-Projekt-Repos: Eine Änderung in einer Abhängigkeit kann in einem Rutsch und einem Review durchgeführt werden. Komplexere Abhängigkeiten beim Mergen von Änderungen über verschiedene Repositorys hinweg wird vermieden und das Review ist gleichzeitig transparenter durchführbar, da man in einer Ansicht und mit einem Review projektübergreifend die Änderung überblicken kann.

Was ich hier allerdings noch nicht betrachtet habe, ist das CI (und CD) Setup, denn das hat auch einen wesentlichen Einfluss auf die Arbeitsweise. Aber dazu im nächsten Abschnitt mehr.

CI/CD und Build Tools

Ein weiterer Aspekt der wichtig zu betrachten ist, ist das Setup rund um CI/CD und den Build Tools. Wie im Abschnitt zuvor schon erwähnt steht und fällt es der verwendete Ansatz an den Tools und Workflows.

Um das Beispiel aus dem vorherigen Abschnitt fortzuführen ist es nun wichtig zu betrachten, wie der Build-Prozess nun aussieht. Im traditionellen Umfeld mit mehreren Repositorys hat jedes Projekt im Repository meistens eine Pipeline-Definition, welche bei jedem Merge-Request ausgeführt wird, um das Projekt zu bauen und zu testen. Kompliziert wird es aber, wenn man es auch „richtig“ testen will und das ist gar nicht so einfach.

Angenommen, die Abhängigkeit mit dem Namen „DependencyA“ ist die Abhängigkeit von „HauptprojektA“ und „HauptprojektB“. Wenn also für eine Änderung in „HauptprojektA“ eine Änderung in „DependencyA“ benötigt wird, dann muss diese Änderung da normal eingepflegt werden, worin dann die Pipeline läuft und das Projekt baut und die Tests ausführt. Wenn es erfolgreich war, dann wird ggf. eine neue Version getaggt, damit es dann von „HauptprojektA“ und „HauptprojektB“ referenziert und verwendet werden kann. Dort müssen dann nochmals Merge Requests erzeugt werden, die dann die Version von „DependencyA“ hochziehen und dann alles Bauen und Testen.

Das ist im Prinzip das, was ich auch zum internen Dependency-Management geschrieben habe. Das Problem hierbei ist, dass immer nur jedes Projekt für sich getestet wird, aber nicht alle Projekte als ganzes. Das heißt im Konkret, wenn die Änderung in „DependencyA“ zu einem Fehler im „HauptprojektB“ führt, muss der ganze Workflow wieder von vorne gestartet werden.

Was häufig aber fehlt, ist die Möglichkeit alle Projekte zu bauen, die voneinander abhängen für die einzelne Änderung. Das heißt, ich mache eine Änderung an „DependencyA“, die Pipeline baut nicht nur das Projekt selbst und testet es, sondern es zieht bei „HauptprojektA“ und „HauptprojektB“ die Änderung „trocken“ mit und baut es im gleichen Zuge auch mit durch und führt die Tests aus. So kann sichergestellt werden, dass die Änderung nicht zu Folgefehlern in den eigentlichen Projekten führt.

Beim Einsatz von mehreren Repositorys ist das nicht soo einfach zu lösen, da theoretisch automatisiert in den entsprechenden Reverse-Dependency-Projekten neue Branches mit den Änderungen erstellt werden müssen, um die Pipeline zu triggern. Oder es muss eine andere Art der Parametrisierung eingebaut werden, um dies zu bewerkstelligen. zuul-ci.org ist ein Projekt um so etwas umzusetzen. Praktische Erfahrung habe ich damit allerdings nicht.

In Monorepos ist das grundsätzliche Problem eine Änderung in allen Projekten durchzubauen auch enthalten, ist da aber grundsätzlich einfacher zu verwalten, weil es eben in einem Repository enthalten ist. Nichtsdestotrotz wird auch hier ein eigenes bzw. spezielles Buildtool benötigt, was selbstständig die Abhängigkeiten auf allen Projekten im Repository erkennt und entsprechend durchbaut. Das Buildtool Bazel unterstützt das und baut etwa nur die Änderungen durch, die auch wirklich benötigt werden.

Kollaborationen im Team und zwischen Teams

Beim Arbeiten über den Grenzen von verschiedenen Teams ist die Abstimmung bei Änderungen essenziell. Beim Einsatz von mehreren Repositorys sind die Verantwortlichkeiten über die Repository-Berechtigungen selbst gesetzt. Die Hürde bei „fremden“ Teams die Änderung an einer gemeinsam genutzten Abhängigkeit und beim Projekt selbst einzubringen ist häufig eher hoch. Aber das ist mehr eine organisatorische und auch kulturelle Frage.

In Monorepos und Multi-Projekt-Repos ist das nicht so einfach möglich, weil sich hier das klassische Modell nicht anwenden lässt. Dafür gibt es allerdings das Konzept der CODEOWNERS wo sich eintragen lässt, welcher User der „Eigentümer“ welches Unterverzeichnisses ist, damit diese im Code-Review automatisch benachrichtigt werden und nur diese es mergen dürfen. Diese Funktion ist keine Funktion von Git selbst, sondern wird von den verschiedenen Git-Hosting-Diensten selbst implementiert. In GitLab ist die Code Owners Funktionalität kostenpflichtig, in GitHub je nach Visbilität des Projekts auch.

Git Funktionen für große Repositorys

Bisher habe ich mich hauptsächlich mit den konzeptionellen Vor- und Nachteilen beschäftigt. Fakt ist allerdings, dass die echten Vor- und Nachteile sehr stark von den eigentlichen Firmen, Strukturen und Projekten ab.

Bisher habe ich nicht nur die Arbeitsweise und Workflows betrachtet, weniger wie gut bzw. schlecht es mit Git selbst funktioniert. Darum geht es nun in den folgenden Abschnitten.

Performance

Das Git von Haus aus nicht wirklich für große Repositorys gemacht ist, ist vielen mittlerweile hinlänglich bekannt, da alle Versionen aller Dateien im Standard im Repository enthalten sind. Je mehr Dateien und Verzeichnisse sind, desto eher wird die Performance leiden. Dies ist nicht nur daran geschuldet, dass das Repository sehr groß (in Gigabyte gemessen) wird, sondern auch, dass nicht effizient mit mehreren Millionen von Dateien umgehen kann.

Wie sich das ganze Auswirken kann, zeigt ein Konferenz-Vortrag von Microsoft: „Scaling Git at Microsoft“. Dort wird erzählt welche Probleme Microsoft hatte, um das Windows Repository auf Git zu migrieren. Es resultierte in ein 270GB großes Repository, wo das Klonen 12h gedauert hat, ein git checkout 3h, das Ausführen von git status auch immerhin 8 Minuten und Ausführen von git commit dauerte auch schon mal eben 30 Minuten. Alles wohlgemerkt auf SSDs. Aus technischer Sicht ist das ein sehr spannender Vortrag, bei dem ich erst richtig verstanden hab, was für Probleme Git bei großen Repositorys hat.

Allerdings muss man sowieso hervorheben, dass wohl die wenigsten Projekte wirklich so große Repositorys haben werden.

Git LFS

Ein angesprochenes Problem von Git ist wie zuvor erwähnt die Handhabung von Binärdateien. Dazu gibt es Git LFS, womit sich Binärdateien außerhalb des eigentlichen Git-Repositorys von Git speichern und verwalten lassen. Der einzige Zweck ist wirklich nur die Handhabung von Binärdateien und weniger von generellen großen Repositorys.

In einem separaten Blogpost habe ich das Thema Git LFS näher beleuchtet.

git submodule und git subtree

Wenn man mit mehreren Repositorys arbeitet, gibt es verschiedene Möglichkeiten die Abhängigkeiten mit hereinzuziehen. Wenn diese Abhängigkeiten einfach über den Paketmanager der verwendeten Programmiersprache verwendet werden kann, ist es am einfachsten. Wenn man allerdings den Code einer Abhängigkeit direkt in das Hauptprojekt einbinden muss, dann gibt es die Möglichkeit mit Submodulen zu arbeiten. Die eher unbekanntere Methode ist Subtree zu nutzen.

Beide Varianten haben Vor- und Nachteile. Die Handhabung von git submodule ist eher aufwändig und mühselig. Es müssen relativ viele Schritte durchgeführt werden, damit alles ordnungsgemäß funktioniert. Mit git subtree kann man hingegen das Zurückführen der Änderung gut und gerne mal vergessen, ist dafür aber angenehmer zu nutzen.

Auch auf diese beiden Befehle gehe in einem weiteren Blogpost näher darauf ein.

git sparse-checkout

Sowohl git submodule als auch git subtree waren zwei Funktionen, die eher nicht für Monorepos relevant sind. Was hingegen relevant ist, ist die Möglichkeit nur mit einem Teil des Repositorys arbeiten zu können. Ein gängiges git clone lädt schließlich das komplette Repository herunter, was bei einem echten Monorepo eher ungünstig ist, da man dann auch allen Code lokal vorliegen hat, den man gar nicht braucht. Mit einem Sparse-Checkout lässt sich ein Klonen und Arbeiten mit einzelnen Unterverzeichnissen bewerkstelligen.

Das GitHub-Blog hat einen ausführlichen Blogpost veröffentlicht in dem genauer beschrieben wird, wie man mit git sparse-checkout arbeiten kann, damit das Arbeiten mit einem Monorepo überhaupt erst halbwegs ordentlich möglich ist.

Fazit

Wenn ihr nun diesen Blogpost gelesen habt, habt ihr vielleicht das Gefühl, dass die Vorteile den Nachteilen von Monorepos überwiegen und dies auch meine Einstellung ist. Tatsächlich ist diese Frage gar nicht so einfach zu beantworten.

Prinzipiell bin ich kein großer Fan von Monorepos. Die meisten Firmen dürften viel zu klein sein, um überhaupt die Vorteile von Monorepo-Ansätzen profitieren zu können. Die Nachteile überwiegen da häufig, da eher speziellere Tools für das Bauen und Verwalten der ganzen Toolchain gebraucht wird, die zu meist auch komplexer sind. Und ich meine hier ganz bewusst echte Monorepos und nicht Multi-Projekt-Repositorys. Die sind nicht ganz so komplex und umspannen in der Regel nicht völlig verschiedene Teams, Abteilungen die nichts miteinander zu tun haben.

Bei ganz großen Firmen sieht das natürlich anders aus, aber sehr viele ähnlich große Firmen die vergleichbar mit Microsoft, Google oder Twitter sind, gibt es dann doch eher seltener. Und die haben auch genug Personal, um spezielles eigenes Tooling zu entwickeln.

Was man hingegen nicht verleugnen sollte, ist der Fakt, dass an Git aktuell vor allem Verbesserung bei der Handhabung von großen Repositorys sichtbar ist. Da dürften noch viele weitere Neuigkeiten mit einfließen, so wie git sparse-checkout ein relativ neues Feature ist.

Unabhängig davon: Das Thema Monorepos haben Dirk und ich in unserem Podcast TILpod in Folge TIL006 besprochen mit einer etwas anderen Art und Weise.

Firefox bekommt Unterstützung für neue Bildformate. Neben der Unterstützung für AVIF, welche für Firefox 92 geplant ist, soll Firefox in Zukunft auch das neue Bildformat JPEG-XL (JXL) unterstützen.

Bereits seit längerer Zeit arbeitet Mozilla an der Unterstützung des neuen Bildformats AVIF in Firefox. AVIF steht für AV1 Image File Format und ist ein Bildformat, welches auf dem Video-Codec AV1 basiert und wie AV1 von AOMedia spezifiziert worden ist. Ähnlich wie AV1 bei Videos verspricht auch AVIF bei Bildern bei gleichbleibender Qualität deutlich geringere Dateigrößen als konkurrierende Formate wie JPG oder WebP. Die Aktivierung der AVIF-Unterstützung ist derzeit für Firefox 92 geplant. Firefox 92 wird nach aktueller Planung am 27. September 2021 erscheinen.

AVIF ist aber nicht das einzige neue Bildformat, welches Firefox in Zukunft unterstützen wird. Eine initiale Unterstützung für das von der Joint Photographic Experts Group entwickelte Bildformat JPEG-XL, kurz: JXL, ist in der Nightly-Version von Firefox 90 gelandet.

Bildformate Vergleich 2021
Bildquelle: cloudinary.com

Bei der Unterstützung von JPEG-XL in der Nightly-Version von Firefox 90 handelt es sich um eine erste Integration, bei der einige Features noch nicht implementiert sind. An einen produktiven Einsatz ist zu diesem Zeitpunkt also noch nicht zu denken. Standardmäßig ist die Unterstützung aus diesem Grund auch noch hinter dem Schalter image.jxl.enabled in about:config deaktiviert. Welche Firefox-Version JPEG-XL final unterstützen wird, lässt sich zu diesem Zeitpunkt noch nicht sagen. Mit Sicherheit wird es aber noch einige Monate dauern.

Der Beitrag Firefox bekommt Unterstützung für Bildformat JPEG-XL (JXL) erschien zuerst auf soeren-hentzschel.at.

Cyberchef (The Cyber Swiss Army Knife) hatte ich vor fast 4 Jahren auf ITrig erwähnt. Das Tool sagte mir damals wegen seiner praktischen Encoding beziehungsweise Decoding Funktionen zu.

Seitdem ist einige Zeit vergangen und Arbeitsweisen haben sich geändert. So verwende ich inzwischen unter anderem Visual Studio Code fürs tägliche Editieren. Durch die vielen Plugins ist der Editor sehr gut erweiterbar.

Genau hier kommt die Erweiterung Swiss Knife ins Spiel

 

VS Code – Swissknife

swissknife

Die Visual Studio Code Erweiterung von Luis Fontes beherrscht eine Menge an Funktionen, vom Hashes generieren, über Hex oder Base64 bis Markdown.

Das heißt eurer Editor wird mit wenigen Klicks um viele Alltagsanwendungen erweitert.

Folgende Funktionen beherrscht das Schweizer Messer für Visual Studio momentan:

  • Base64 decode

  • Base64 encode

  • Binary To Text

  • Bip39 Mnemonic

  • CSV to Markdown

  • Count characters

  • Count words

  • Crypto currency value

  • Date to Timestamp

  • Eliptic Curve Key Pair

  • Generate Password

  • HTML Encode (AlL)

  • Hex decode

  • Hex encode

  • Hex to RGB

  • Identify hash

  • JWT Decode

  • Join lines

  • Lorem Ipsum

  • Markdown to HTML

  • Md5 hash

  • New Swissknife Script (JS)

  • New Swissknife Script (TS)

  • Password strength

  • RGB To Hex

  • RSA Key pair

  • Random String

  • Request to fetch

  • SHA1 hash

  • SHA256 hash

  • SHA512 hash

  • Self Signed Certificate

  • Start Local HTTP Server

  • Start Local HTTPS Server

  • Stop HTTP Server

  • Text To Binary

  • Text to String

  • Timestamp to Date

  • To Camel Case

  • To Lower Case

  • To Morse code

  • To Upper Case

  • UUIDv4

  • Unicode decode

  • Unicode encode (js format)

  • Unix/Linux Permission To Human Readable

  • Url Decode

  • Url Encode

  • Url Encode (All Characters)

  • Url Shorten

  • Url Unshorten (url expand)

Die Funktionen lassen sich mit swissknife.show oder Strg+Shift+9 beziehungsweise cmd+shift+9 im Terminal aufrufen. (Text markieren vorher nicht vergessen).

Hat man die Tastenkombination einmal im Kopf, erleichtert die Erweiterung das Arbeiten an vielen Stellen sehr, vorrausgesetzt die Anwendungsfälle kommen öfters vor.

Download swissknife