Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Gestern — 11. September 2024Blogs

Mozilla veröffentlicht Firefox 130 für Android

11. September 2024 um 19:08

Mozilla hat Firefox 130 für Android veröffentlicht. Dieser Artikel beschreibt die Neuerungen von Firefox 130 für Android.

Download Firefox für Android im Google Play Store

Lokale Übersetzungsfunktion für alle Nutzer

Firefox für Windows, Apple macOS und Linux wird bereits seit Version 118 mit einer lokalen Funktion zur maschinellen Übersetzung von Websites für den Browser ausgeliefert. Das bedeutet, dass die Übersetzung vollständig im Browser geschieht und keine zu übersetzenden Inhalte an einen Datenriesen wie Google oder Microsoft übermittelt werden müssen. Seit Firefox 127 wurde diese Funktion schrittweise auch auf Android ausgerollt. Mit Firefox 130 ist die Übersetzungsfunktion für alle Nutzer von Firefox für Android aktiviert.

Firefox 130 für Android

Sicheres Passwort generieren

Firefox 130 für Android bringt einen Passwort-Generator, der dabei hilft, sichere Passwörter zu erstellen, wenn man sich auf einer Website beispielsweise ein neues Benutzerkonto registriert.

Firefox 130 für Android

URLs von Verknüpfungen auf Startbildschirm bearbeiten

Bislang war es bereits möglich, Verknüpfungen auf dem Startbildschirm von Firefox umzubenennen. Jetzt ist es auch möglich, die URL zu bearbeiten.

Firefox 130 für Android

Performance-Verbesserungen

Firefox für Android kann jetzt mehr Ressourcen gleichzeitig herunterladen, was die Ladegeschwindigkeit von Websites verbessert.

Eine weitere Performance-Verbesserung resultiert daraus, dass Firefox nicht mehr automatisch auf Software-WebRender zurückfällt, wenn der GPU-Prozess zu häufig unerwartet beendet wurde, ohne dass der Hauptprozess beendet wurde, was durch das Ressourcen-Management von Android relativ häufig passieren kann.

Sonstige Neuerungen von Firefox 130 für Android

In den Einstellungen für den Schutz vor Aktivitätenverfolgung gibt es in der benutzerdefinierten Konfiguration jetzt auch eine Option für das Blockieren vermuteter Fingerprinter, wahlweise nur in privaten Tabs oder immer.

Dazu kommen wie immer neue Plattform-Features der aktuellen GeckoView-Engine, diverse Fehlerbehebungen, geschlossene Sicherheitslücken sowie Verbesserungen unter der Haube.

Der Beitrag Mozilla veröffentlicht Firefox 130 für Android erschien zuerst auf soeren-hentzschel.at.

Nextcloud auf dem RasPi – Teil 3

11. September 2024 um 04:00

Das Zuweisen einer statischen IP-Adresse an einen Raspberry Pi ist sinnvoll, um sicherzustellen, dass das Gerät immer unter derselben Adresse im Netzwerk erreichbar ist. Dies ist besonders nützlich für bestimmte Anwendungen wie z.B. Nextcloud, für die eine konstante IP-Adresse wichtig ist.

Festlegen einer statischen internen IP-Adresse

Eine statische lokale IP setzt man wie folgt. Zuerst installiert man dhcpcd.

sudo apt install dhcpcd -y

und trägt dann folgenden Block mit

sudo nano /etc/dhcpcd.conf

am Ende der /etc/dhcpcd.conf ein. Hierbei habe ich mich für die interne IP 192.168.178.136. Dies ist natürlich abhängig vom Adressbereich des eigenen Netzwerks. Auch die IP des Routers ist entsprechend anzupassen.

profile static_eth0
static ip_address=192.168.178.23/24
static routers=192.168.178.1
static domain_name_servers=192.168.178.1

Zum Schluss wird der Dienst dhcpcd neu gestartet.

sudo service dhcpcd restart

Vorschau

Im nächsten Teil zeige ich, was nötig ist, die Nextcloud über das Internet erreichbar zu machen.

Ältere BeiträgeBlogs

Website-Builder Solo von Mozilla: Version 1.2 fertiggestellt

10. September 2024 um 20:35

Solo ist ein Ende des vergangenen Jahres vom Mozilla Innovation Studio angekündigter Website-Builder, der auf Künstliche Intelligenz (KI) und einen maximal einfachen Erstellungsprozess setzt. Nun steht Solo 1.2 bereit und bringt viele Neuerungen.

Im Rahmen der Innovation Week im Dezember 2023 hatte das Mozilla Innovation Studio Solo angekündigt. Dabei handelt es sich um einen sogenannten Website-Builder mit Fokus auf Selbständige, der auf generative Künstliche Intelligenz für einen maximal einfachen Erstellungsprozess setzt.

Jetzt Website-Builder Solo von Mozilla testen

Seit dem Start hat Mozilla einige Funktionen ergänzt. Jetzt hat Mozilla Solo 1.2 fertiggestellt.

In Textfeldern mit Formatierungen gibt es jetzt Funktionen für Rückgängig und Wiederherstellen. Eingebettete YouTube-Videos unterstützen benutzerdefinierte URL-Parameter, beispielsweise zur Angabe der Startzeit. Es gibt einen neuen FAQ-Abschnitt für Fragen und Antworten. Ein neuer Team-Abschnitt kann zur Präsentation von Teammitgliedern genutzt werden. Für den Einleitungs-Abschnitt wurde das Zeichenlimit erhöht.

Verbessert wurde das Erfassen von Daten von Facebook, Instagram und Thumbtack zur Generierung der Website. Thumbstack kann jetzt auch als Social Media Icon im Header und Footer hinzugefügt werden. Was Bildformate betrifft, werden jetzt auch WebP- sowie animierte GIF-Grafiken unterstützt.

Dazu kommen noch diverse Fehlerbehebungen und Performance-Verbesserungen.

Ebenfalls verbessert wurden die zwei Nebenprojekte von Solo: Ein Generator für Geschäftsideen sowie ein Generator für Geschäftsnamen.

Die Nutzung von Solo ist kostenlos. Geringe Kosten fallen höchstens bei Verwendung einer benutzerdefinierten Domain an. Als Nächstes stehen weitere Optionen zum Bearbeiten und Gestalten, ein Abschnitt für Kundenlogos, weitere Anpassungsoptionen für das Kontaktformular sowie eine neue Bibliothek zur Verwendung von Icons auf der Website auf der Roadmap.

Der Beitrag Website-Builder Solo von Mozilla: Version 1.2 fertiggestellt erschien zuerst auf soeren-hentzschel.at.

GPIO-Ärger auf dem Raspberry Pi 5

10. September 2024 um 14:11

(Aktualisiert 11.9.2024) Mit der Auslieferung des Raspberry Pi 5 im Herbst 2024 hat sich bei einigen Low-Level-Tools der GPIO-Zugriff geändert: Für die Modelle bis einschließlich Raspberry Pi 4 erfolgt der GPIO-Zugriff über chip0 bzw. /dev/gpiochip0. Beim Raspberry Pi musste dagegen chip4 bzw. /dev/gpiochip4 verwendet werden. Scripts, die universell auf alten und neuen Geräten laufen sollten, brauchten eine entsprechende Fallunterscheidung.

Mit Kernel 6.6.47, der mittlerweile standardmäßig als Update unter Raspberry Pi OS installiert wird, ändert sich wieder alles! Auch beim Raspberry Pi 5 muss nun /dev/gpiochip0 verwendet werden. Eine Referenz aller internen GPIO-Nummern gibt cat /sys/kernel/debug/gpio.

Die Änderung betrifft unter anderem:

  • Python: gpiozero, lgpio, gpiod
  • Bash: gpioset, gpioget
  • C: lgpio, libgpiod, wiringpi

Scripts, die mit diesen Modulen bzw. Bibliotheken verfasst wurden, müssen geändert werden (Umstellung von GPIO-Chip 4 auf GPIO-Chip 0). Im Folgenden habe ich diesbezüglich Anleitungen für diverse Fälle zusammengefasst.

Python-Scripts mit gpiozero

Beim Start derartiger Scripts auf dem Raspberry Pi 5 mit dem aktuellen Kernel (>= 6.6.47) tritt die Fehlermeldung can not open gpiochip auf. Das Script bricht ab. Der Fehler ist bekannt, es wird demnächst eine neue Version des Python-Modules geben. Bis dahin ist es am einfachsten, das Script wie folgt zu starten:

RPI_LGPIO_CHIP=0 ./gpiozero-led.py

Alternativ führen Sie export RPI_LGPIO_CHIP=0 aus und fügen diese Anweisung auch in /home/your-account/.bashrc ein. Eine weitere Möglichkeit ohne die externe Definition von Umgebungsvariablen besteht darin, am Beginn Ihres Python-Scripts die folgende Zeile einzubauen:

import os 
os.environ['RPI_LGPIO_CHIP']='0'

Im gpiozero-Issue ist auch von PWM-Problemen zu lesen, die sich selbst mit RPI_LGPIO_CHIP=0 nicht lösen lassen. Das kann ich nicht bestätigen. Mein PWM-Test-Script gibt zwar eine Warnung aus, funktioniert aber.

Python-Scripts mit lgpio

Wenn Sie in Ihrem Python-Script das lgpio-Modul verwenden, müssen Sie den Handle nun IMMER mit gpiochip_open(0) öffnen, also:

# alle Raspberry-Pi-Modelle mit aktuellen Kernel >= 6.6.45
handle = lgpio.gpiochip_open(0)

# Raspberry Pi 5 mit Kernel < 6.6.45
# handle = lgpio.gpiochip_open(4)

Python-Scripts mit gpiod

Wenn Sie in Ihrem Python-Script das gpiod-Modul verwenden, müssen Sie die Initialisierung nun IMMER mit 'gpiochip0' durchführen, also:

chip = gpiod.Chip('gpiochip0')     # alle Modelle mit Kernel >= 6.6.45
# chip = gpiod.Chip('gpiochip4')   # Raspberry Pi 5 mit Kernel < 6.6.45

pinout-Kommando

Auch das Kommando pinout liefert zur Zeit Fehlermeldungen (can’t connect to pigpio at localhost sowie Unable to initialize GPIO Zero). Hinter den Kulissen handelt es sich bei dem Kommando um ein Python-Script, das gpiozero verwendet. Bis dieses Modul aktualisiert wird, hilft der oben schon erwähnte Trick mit RPI_LGPIO_CHIP=0 weiter, also:

RPI_LGPIO_CHIP=0 pinout

bash-Scripts mit gpioset, gpioget und gpiomon

Bei den genannten Kommandos übergeben Sie als ersten Parameter die Chip-Nummer. Ab Kernel 6.6.45 lautet diese IMMER 0, also z.B.:

chip=0
gpioset $chip 7=1   # GPIO 7 (Pin 26) auf "high" stellen
gpioset $chip 7=0   # GPIO 7 (Pin 26) auf "low" stellen

bash-Scripts mit pinctrl

Hier ändert sich nichts. pinctrl war schon in der Vergangenheit in der Lage, die richtige Chip-Nummer selbst zu erkennen, und das funktioniert weiterhin. Großartig!

pinctrl set 7 op dh   # LED an Pin 26 ein
pinctrl set 7 op dl   # LED an Pin 26 aus

C-Programme mit lgpio

Ab Kernel 6.6.45 müssen Sie IMMER die Chip-Nummer 0 verwenden, also:

#define CHIP 0
...
h = lgGpiochipOpen(CHIP);  // open connection to I/O chip

C-Programme mit gpiod

Ab Kernel 6.6.45 müssen Sie IMMER "gpiochip0" verwenden, also:

char *chipname = "gpiochip0";
chip = gpiod_chip_open_by_name(chipname);
...

wiringpi

Die von Gordon Drogon entwickelte wiringpi-Bibliothek ist seit vielen Jahren veraltet (gilt bis Version 2.5).

2024 hat der Grazer Computer Club die Wartung der Bibliothek übernommen. Damit ist diese Bibliothek (jetzt in Version 3.0) wieder verwendbar! Weitere Informationen sowie Installationshinweise gibt es auf der GitHub-Projektseite:

https://github.com/WiringPi/WiringPi

Persönliche Anmerkung

Diese ganze Angelegenheit ist ein einziges Trauerspiel. Dass beim Raspberry Pi 5 anfänglich /dev/gpiochip4 als interne GPIO-Schnittstelle verwendet wurde (und nicht von Anfang an /dev/gpiochip0 wie bei früheren Raspberry-Pi-Modellen), war schon eine äußerst fragwürdige Entscheidung. Aber die Schnittstelle jetzt, fast ein Jahr nach dem Release des Raspberry Pi 5 und Raspberry Pi OS Bookworm, zu ändern, ist einfach irrsinnig.

Mit dem Kernel-Update funktionieren unzählige GPIO-Scripts von einen Tag auf den anderen nicht mehr. So etwas muss von vorne herein vermieden werden, und, wenn es denn gar nicht anders geht, viel viel besser kommuniziert werden. Die Maintainer der GPIO-Bibliotheken waren offenbar allesamt überrascht von der Änderung. Unprofessioneller geht’s nicht.

Hintergründe / Links

Dieser Blog-Beitrag ist ursprünglich unter https://pi-buch.info/low-level-gpio-zugriff-geaendert-mit-kernel-6-6/ erschienen. Danke an Hr. Strohmayer, der mich als erster auf dieses Problem aufmerksam gemacht hat.

Programmiersprache: Rust 1.81 steht bereit

09. September 2024 um 20:10

Kurz notiert: Die Programmiersprache Rust steht ab sofort in Version 1.81 bereit.

Die Programmiersprache Rust wurde planmäßig in Version 1.81 veröffentlicht. Wer sich für alle Highlights der neuen Version interessiert, findet wie immer in der offiziellen Release-Ankündigung weitere Informationen.

Der Beitrag Programmiersprache: Rust 1.81 steht bereit erschien zuerst auf soeren-hentzschel.at.

Nextcloud auf dem RasPi – Teil 2

09. September 2024 um 16:00

Um später alle Vorzüge, wie Nextcloud Office, von Nextcloud Hub nutzen zu können, empfehle ich den Document Server Collabora Online – Built-in CODE Server (ARM64) auf dem Raspberry Pi via Terminal beizeiten zu installieren, da es über die grafische Oberfläche i.d.R. zu einem Timeout kommt. Wie das Ganze funktioniert erläutere ich in diesem Artikel.

Nextcloud Office

Nextcloud Office ist eine in Nextcloud integrierte Office-Lösung, die es ermöglicht, Dokumente, Tabellen und Präsentationen direkt im Browser zu erstellen und gemeinsam zu bearbeiten. Basierend auf Open-Source-Technologien wie Collabora Online unterstützt es gängige Dateiformate wie DOCX und ODT. Die Echtzeit-Zusammenarbeit und vollständige Integration in die Nextcloud-Plattform ermöglicht eine sichere und effiziente Teamarbeit, bei der alle Daten unter eigener Kontrolle bleiben. Ideal für Unternehmen, die Wert auf Datenschutz und Datensouveränität legen.

Installation

cd /var/www/html/nextcloud
sudo -u www-data php -d memory_limit=512M ./occ app:install richdocumentscode_arm64

Aktivierung

Abschließend wird die Nextcloud Office-App in den Nextcloud Hub-Paketen für die spätere Nutzung
aktiviert.

Anmerkung

Dies funktioniert nur auf 64-Bit-Systemen!

Vorschau

Im nächsten Teil zeige ich, wie man dem Raspberry PI eine feste interne IP-Adresse im heimischen Netzwerk zuweist.

WordPress 6 Schnelleinstieg

09. September 2024 um 04:00

Das Buch „WordPress 6 Schnelleinstieg“ von Vladimir Simovic und Thordis Bonfranchi-Simovic ist in der 1. Auflage 2023 im mitp-Verlag erschienen. Es trägt den Untertitel „Blogs und Webseiten erstellen – Einfach und ohne Vorkenntnisse“. Das Buch hat insgesamt 272 Seiten und richtet sich an Einsteiger, aber auch fortgeschrittene Nutzer des Content-Management-Systems WordPress.

Das Buch „WordPress 6 Schnelleinstieg“ vom MITP-Verlag bietet einen umfassenden Leitfaden für alle, die sich schnell und effektiv mit dem Bloggen und der Webseitengestaltung mit WordPress vertraut machen möchten. Die Autoren geben mit detaillierten Anleitungen und praktischen Tipps einen strukturierten Überblick über die wichtigsten Funktionen und Möglichkeiten des beliebten Content-Management-Systems.

Dieses Buch ist sachlich verfasst und vermittelt dank der Fachkenntnisse der beiden Autoren dem Leser enorm viel Wissen. Durch die klare Strukturierung kann die erste Webseite in kürzester Zeit umgesetzt werden. Es wird detailliert erklärt, wie WordPress installiert wird, wie das Dateisystem und die Datenbank aufgebaut sind. Der Nutzer wird ausreichend in diese Thematik eingearbeitet. Backups spielen hierbei eine zentrale Rolle, auf die die Autoren ausführlich eingehen. Im Buch erfährt man, welche Nutzerberechtigungen in WordPress vergeben werden können und wie das System gewartet und aktualisiert wird.

Besonders erwähnenswert ist das Kapitel „Design anpassen“, in dem sich die Autoren mit dem Full Site Editing auseinandersetzen. Dabei werden anhand des Themes „Twenty
Twenty-Twon“ die Gestaltungsmöglichkeiten mit dem Blockeditor Gutenberg erläutert. Dies ermöglicht nahezu unbegrenzte Anpassungsmöglichkeiten bei der Erstellung oder Bearbeitung eines
Webprojekts.

Am Ende des Buches wird es vom Inhalt etwas technischer, jedoch nicht weniger interessant. Möglichkeiten durch den Eingriff in den Programmcode lassen noch mehr Spielraum zu. Auch die Erstellung von Child-Themes wird ausführlich erklärt, damit Änderungen im Code problemlos ein Upgrade des Themes überstehen können.

Ein weiterer bedeutender Fokus der Autoren liegt auf der Suchmaschinenoptimierung (SEO). Dabei spielt die Qualität des Inhalts, die korrekte Verwendung von Überschriften und die Bereitstellung von ausreichenden Metadaten z.B. für Bilder eine entscheidende Rolle. Diese Maßnahmen sind nicht nur für die Zugänglichkeit der Website von Vorteil, sondern auch für ein verbessertes Ranking in Suchmaschinen und sorgen für optimale Suchergebnisse im Internet.

Das Buch gliedert sich in folgende Kapitel:

  • WordPress installieren und grundlegende Einstellungen
  • WordPress anpassen
  • Seiten und Beiträge verfassen und bearbeiten
  • Design anpassen
  • Funktionalität erweitern mit Plugins
  • Tipps für Fortgeschrittene

Leseproben und Downloads

Inhaltsverzeichnis und Leseprobe

Fazit

Das Buch „WordPress 6 Schnelleinstieg“ ist sowohl für Anfänger als auch Fortgeschrittene eine nützliche Informationsquelle. Ich empfehle dieses kompakte Handbuch jedem, der daran interessiert ist, seine erste Website mit WordPress zu erstellen. Daher rate ich definitiv zum Kauf dieses Buches!

Es sollte auch darauf hingewiesen werden, dass zu dem gedruckten Exemplar ein eBook zum Download zur Verfügung steht.

Firefox: Unterstützung für veraltete Betriebssysteme bis März 2025 verlängert

08. September 2024 um 05:51

Mozilla hat die Unterstützung von Firefox für die veralteten Betriebssysteme Windows 7, Windows 8, macOS 10.12, macOS 10.13 sowie macOS 10.14 offiziell bis März 2025 verlängert.

Bereits im Juli hatte ich darüber berichtet, dass Mozilla die Unterstützung veralteter Betriebssysteme verlängern wird. Dies schließt die Betriebssysteme Windows 7, Windows 8, macOS 10.12, macOS 10.13 sowie macOS 10.14 ein. Entsprechende Nutzer wurden im Juni 2023 mit Erscheinen von Firefox 115 auf Firefox ESR 115 (Firefox ESR ist die Firefox-Version mit Langzeitunterstützung) migriert, da Firefox 116 und höher diese Betriebssysteme nicht mehr unterstützt. Mit Firefox 115.15 erschien vergangenen Dienstag die bis dahin offiziell letzte Version von Firefox ESR 115.

Während Nutzer von Firefox ESR 115 auf einem aktuellen Betriebssystem wie geplant ab dem 1. Oktober 2024 das Update auf Firefox ESR 128.3 erhalten werden, gibt es für Nutzer veralteter Betriebssysteme eine Verlängerung der Lebenszeit von Firefox ESR 115. Genauer gesagt wird Mozilla diese Nutzer noch bis zum 4. März 2025 und dem Erscheinen von Firefox ESR 115.21 mit Updates versorgen.

Basierend auf der weiteren Entwicklung der Nutzerzahlen ist eine erneute Verlängerung nach Ablauf der sechs Monate nicht ausgeschlossen. Nach aktuellem Stand nutzen noch 10,5 Prozent der Firefox-Nutzer Windows 7 oder Windows 8. Vor einem Jahr lag diese Zahl noch bei 13,7 Prozent, vor zwei Jahren bei 19,1 Prozent. Microsoft selbst hatte die Unterstützung bereits im Januar 2020 eingestellt. Firefox-Konkurrent Google Chrome bietet seit Februar 2023 keine Unterstützung mehr an.

Der Beitrag Firefox: Unterstützung für veraltete Betriebssysteme bis März 2025 verlängert erschien zuerst auf soeren-hentzschel.at.

Firefox: Enterprise Policy Generator 6.1 veröffentlicht

07. September 2024 um 20:14

Der Enterprise Policy Generator richtet sich an Administratoren von Unternehmen und Organisationen, welche Firefox konfigurieren wollen. Mit dem Enterprise Policy Generator 6.1 ist nun ein Update erschienen.

Enterprise Policy Generator

Download Enterprise Policy Generator für Firefox

Die Enterprise Policy Engine erlaubt es Administratoren, Firefox über eine Konfigurationsdatei zu konfigurieren. Der Vorteil dieser Konfigurationsdatei gegenüber Group Policy Objects (GPO) ist, dass diese Methode nicht nur auf Windows, sondern plattformübergreifend auf Windows, Apple macOS sowie Linux funktioniert.

Der Enterprise Policy Generator hilft bei der Zusammenstellung der sogenannten Enterprise Policies, sodass kein tiefergehendes Studium der Dokumentation und aller möglichen Optionen notwendig ist und sich Administratoren die gewünschten Enterprise Policies einfach zusammenklicken können.

Neuerungen vom Enterprise Policy Generator 6.1

Technische Verbesserungen der Erweiterung

Der Enterprise Policy Generator verfolgt einen selbst generierenden Ansatz, bei dem sich der Aufbau der Oberfläche, das Generieren der Datei policies.json, das Speichern und Laden sowie das Exportieren und Importieren von Konfigurationen vollständig automatisiert aus einer einzelnen internen Konfigurationsdatei ableitet. Zur Unterstützung neuer Unternehmensrichtlinien, welche sich bisher nicht abbilden ließen, wurde die Unterstützung für mehrere zusätzliche Richtlinien-Typen ergänzt.

Für URL-Felder wurde die Option hinzugefügt, eine sichere Verbindung (https://) zu erfordern, außerdem können Infolinks jetzt an weiteren Stellen ergänzt werden. Für Felder mit mehreren möglichen Werten, die per Plus-Symbol hinzugefügt werden können, ist es nun möglich, auch den letzten Wert wieder zu entfernen.

Neue und erweiterte Unternehmensrichtlinien

Neu ist die Unterstützung für die ManagedBookmarks-Richtlinie, um Lesezeichen zu konfigurieren, welche im Gegensatz zur bereits bestehenden Bookmarks-Richtlinie vom Benutzer weder verändert noch gelöscht werden können. Die Unterstützung für Lesezeichen-Ordner folgt mit einem zukünftigen Update.

Ebenfalls neu ist die Unterstützung für die AllowedDomainsForApps-Richtlinie, um Domains festzulegen, welche auf Google Workspace zugreifen dürfen, sowie für die AutoLaunchProtocolsFromOrigins-Richtlinie, um eine Liste externer Protokolle festzulegen, die von aufgelisteten Quellen aus verwendet werden können, ohne dass der Benutzer dazu aufgefordert wird.

Die OverrideFirstRunPage-Richtlinie wurde aktualisiert, um mehrere URLs zu erlauben. Bestehende Konfigurationen wurden automatisch auf die neue Version migriert.

Die Beschreibung der install_sources-Eigenschaft der ExtensionSettings-Richtlinie wurde überarbeitet und ein Infolink ergänzt, um klar zu machen, dass sogenannte Match Patterns in URLs erlaubt sind.

Optionen, welche noch den alten Weg nutzten, Einstellungen für about:config zu verändern, verwenden jetzt die neue Syntax der Preferences-Richtlinie, sodass hier keine Mischung aus alter und neuer Richtlinie mehr stattfindet.

Fehlerbehebungen

Ein großer Schwerpunkt lag auf der Behebung von Problemen in Zusammenhang mit der Handlers-Richtlinie, insbesondere dann, wenn diese in einer Konfiguration gespeichert und dann wieder aus der Konfiguration heraus geladen worden ist.

Außerdem war es bei der Preferences-Richtlinie trotz Validierung möglich, Optionen mit nicht erlaubtem Optionsnamen in einer Konfiguration zu speichern. Wurde eine solche Konfiguration dann geladen, wurde der ungültige Optionsname nicht beanstandet, obwohl Firefox die entsprechende Option nicht unterstützt.

Ausblick

Damit ist die Unterstützung aller Unternehmensrichtlinien bis einschließlich Firefox 78 komplett. Einzige Ausnahme ist die Ordner-Unterstützung für die MangedBookmarks-Richtlinie, welche nachgereicht werden wird. Schon bald wird der Enterprise Policy Generator 6.2.0 erscheinen, welcher die Unterstützung für alle neuen Richtlinien ergänzen wird, welche während der Lebenszeit von Firefox 91 dazugekommen sind. Danach folgen Enterprise Policy Generator 6.3.0 (Firefox 102) und Enterprise Policy Generator 6.4.0 (Firefox 115), ehe schließlich der Enterprise Policy Generator 7.0.0 Firefox 128 oder höher voraussetzen wird.

Entwicklung unterstützen

Wer die Entwicklung des Add-ons unterstützen möchte, kann dies tun, indem er der Welt vom Enterprise Policy Generator erzählt und die Erweiterung auf addons.mozilla.org bewertet. Auch würde ich mich sehr über eine kleine Spende freuen, welche es mir ermöglicht, weitere Zeit in die Entwicklung des Add-on zu investieren, um zusätzliche Features zu implementieren.

Der Beitrag Firefox: Enterprise Policy Generator 6.1 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

Mozilla veröffentlicht Firefox Klar 130 für Apple iOS

06. September 2024 um 14:53

Firefox Klar ist ein spezialisierter Privatsphäre-Browser von Mozilla. Mit Firefox Klar 130 für Apple iOS steht nun ein Update bereit.

Download Mozilla Firefox Klar für Apple iOS

Die Neuerungen von Firefox Klar 130 für Apple iOS

Mozilla hat Firefox Klar 130 (internationaler Name: Firefox Focus 130) für Apple iOS veröffentlicht. Bei Firefox Klar 130 für Apple iOS handelt es sich um ein Wartungs-Update, welches ausschließlich Verbesserungen unter der Haube bringt. Außerdem behebt das Update eine Sicherheitslücke.

Der Beitrag Mozilla veröffentlicht Firefox Klar 130 für Apple iOS erschien zuerst auf soeren-hentzschel.at.

Briefe in DIN-Norm auf Linux erstellen (Libre Office Writer, Vorlagen)

06. September 2024 um 13:01

💾

In diesem Video zeigt Jean, wie man nach der Einrichtung innerhalb weniger Sekunden Briefe auf Linux erstellen kann. Dafür verwenden wir Libre Office und Vorlagen im Open Document Format.
Wenn Du das Video unterstützen willst, dann gib bitte eine Bewertung ab, und schreibe einen Kommentar. Vielen Dank!


Links:
-------------------------------------

Vorlagen:
- https://extensions.libreoffice.org/en/extensions/show/briefvorlage-din-lang-dl
- https://extensions.libreoffice.org/en/extensions/show/geschaeftsbrief-din-5008-2011-b-a4-ib
Linux-Guides Merch*: https://linux-guides.myspreadshop.de/
Professioneller Linux Support*: https://www.linuxguides.de/linux-support/
Linux-Arbeitsplatz für KMU & Einzelpersonen*: https://www.linuxguides.de/linux-arbeitsplatz/
Linux Mint Kurs für Anwender*: https://www.linuxguides.de/kurs-linux-mint-fur-anwender/
Offizielle Webseite: https://www.linuxguides.de
Forum: https://forum.linuxguides.de/
Unterstützen: http://unterstuetzen.linuxguides.de
Mastodon: https://mastodon.social/@LinuxGuides
X: https://twitter.com/LinuxGuides
Instagram: https://www.instagram.com/linuxguides/
Kontakt: https://www.linuxguides.de/kontakt/

Inhaltsverzeichnis:
-------------------------------------

0:00 Einführung
1:30 Vorlagen installieren
2:30 Standardbrief anpassen und benutzen
7:15 Geschäftsbrief nach DIN 5008 Norm
11:15 Ausblick

Haftungsausschluss:
-------------------------------------
Das Video dient lediglich zu Informationszwecken. Wir übernehmen keinerlei Haftung für in diesem Video gezeigte und / oder erklärte Handlungen. Es entsteht in keinem Moment Anspruch auf Schadensersatz oder ähnliches.

*) Werbung

Mozilla veröffentlicht Firefox 130 für Apple iOS

05. September 2024 um 18:55

Mozilla hat Firefox 130 für Apple iOS veröffentlicht. Dieser Artikel beschreibt die Neuerungen von Firefox 130.

Die Neuerungen von Firefox 130 für iOS

Mozilla hat Firefox 130 für das iPhone, iPad sowie iPod touch veröffentlicht. Die neue Version steht im Apple App Store zum Download bereit. Die neue Version bringt Detail-Verbesserungen, Fehlerbehebungen sowie Verbesserungen unter der Haube.

Der Beitrag Mozilla veröffentlicht Firefox 130 für Apple iOS erschien zuerst auf soeren-hentzschel.at.

Ubuntu-Server-Upgrade von 22.04 auf 24.04

05. September 2024 um 09:27

Generell lautet ja meine Empfehlung, bei produktiven Servern niemals ein Distributions-Upgrade durchzuführen, als z.B. ohne Neuinstallation von Ubuntu 22.04 auf 24.04 umzustellen. Manchmal halte ich mich aber selbst nicht an diese Regel. Testobjekt war ein Server mit Apache, MySQL, PHP, Mail (Postfix, Dovecot, OpenDKIM) und Docker.

Natürlich gab es Schwierigkeiten …

Fairerweise muss ich zugeben, dass do-release-upgrade noch gar kein Server-Update auf Version 24.04 vorsieht. Das ist ein wenig überraschend, als Ubuntu 24.04.1 ja bereits freigegeben wurde. Normalerweise ist das der Zeitpunkt, ab dem do-release-upgrade funktionieren sollte. Ich habe das Upgrade mit do-release-upgrade -d erzwungen. Selbst schuld also.

Update: Canonical rät aktuell wegen APT-Problemen explizit davon ab, Upgrades von 22.04 auf 24.04 durchzuführen (siehe https://lists.ubuntu.com/archives/ubuntu-release/2024-September/006225.html).

Distributions-Upgrade

Zuerst habe ich ein letztes Mal alle 22.04-Updates installiert (also apt update und apt full-upgrade) und den Server dann neu gestartet.

Danach habe ich ein Backup des in einer virtuellen Maschine laufenden Servers durchgeführt. Zur Not hätte ich aus der gesicherten Image-Datei problemlos den bisherigen Zustand des Servers wiederherstellen können. Das war aber zum Glück nicht notwendig.

Das Distributions-Upgrade habe ich dann mit do-release-upgrade -d eingeleitet, wobei -d für --devel-release steht und das Update erzwingt. Es dauerte ca. 1/4 Stunde und lief an sich überraschend flüssig durch. Ein paar Mal musste ich bestätigen, dass meine eigenen Konfigurationsdateien erhalten bleiben und nicht durch neue Konfigurationsdateien überschrieben werden sollten.

Der nachfolgende Reboot verursachte keine Probleme, ich konnte mich nach kurzer Zeit wieder mit SSH einloggen. So weit so gut!

Kein DNS

Die statische Netzwerkkonfiguration meines Servers erfolgt durch /etc/netplan/01.yaml. Dort sind sechs Nameserver eingetragen, je drei für IPv4 und IPv6. Überraschenderweise funktioniert im aktualisierten 24.04-Server keine Namensauflösung mehr — ein wirklich grundlegendes Problem! ping google.com führt also zum Fehler, dass die IP-Adresse von google.com unbekannt sei.

Ein kurzer Blick auf resolv.conf zeigt, dass es sich dabei um einen Link auf eine gar nicht existierende Datei handelt.

ls -l /etc/resolv.conf

  /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf (existiert nicht)

dpkg -l | grep resolve verrät, dass systemd-resolved nicht installiert ist. Sehr merkwürdig!

Abhilfe schafft die Installation dieses Pakets. Die Installation ist aber ohne DNS gar nicht so einfach! Ich musste zuerst /etc/resolv.conf löschen und dann einen Eintrag auf den Google-DNS dort speichern:

rm /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf
apt install systemd-resolved 
reboot

Nach einem Reboot läuft DNS. resolvectl listet jetzt meine in /etc/netplan/01.yaml aufgeführten Nameserver auf.

PHP-Probleme

Nächstes Problem: Apache startet nicht. systemctl status apache2 verweist auf einen Fehler in einer Konfigurationsdatei von PHP 8.1. Aber Ubuntu 24.04 verwendet doch PHP 8.3. Was ist da passiert?

Ein Blick in /etc/apache2/mods-enabled zeigt, dass dort noch PHP 8.1 aktiviert ist. Abhilfe:

a2dismod php8.1
a2enmod php8.3
systemctl restart apache2

Apache und PHP laufen jetzt, aber ein Blick auf die Nextcloud-Statusseite zeigt, dass /etc/php/8.3/apache2/php.ini sehr konservative Einstellungen enthält. Nach memory_limit=1024M und ein paar weiteren Änderungen ist auch Nextcloud zufrieden.

OpenDKIM

Auf meinem 22.04-Server hatte ich DKIM aktiv (siehe auch https://kofler.info/dkim-konfiguration-fuer-postfix/). Nach dem Upgrade funktioniert die Signierung der Mails aber nicht mehr. Der Grund war einmal mehr trivial: Beim Upgrade sind die entsprechenden Pakete verloren gegangen. Abhilfe:

apt install opendkim opendkim-tools

Fazit

Keines der Probleme war unüberwindbar. Überraschend war aber die triviale Natur der Fehler. Beim Upgrade verloren gegangene oder nicht installierte Pakete, keine Synchronisierung zwischen den installierten Paketen und den aktivien Apache-Modulen etc. Ich bleibe bei meinem Ratschlag: Wenn Ihnen Stabilität wichtig ist, vermeiden Sie Distributions-Upgrades. Ja, die Neuinstallation eines Servers verursacht mehr Arbeit, aber dafür können Sie den neuen Server in Ruhe ausprobieren und den Wechsel erst dann durchführen, wenn wirklich alles funktioniert. Bei einem Upgrade riskieren Sie Offline-Zeiten, deren Ausmaß im vorhinein schwer abzuschätzen ist.

Links/Quellen

Thunderbird 128.2 veröffentlicht

04. September 2024 um 19:20

Die MZLA Technologies Corporation hat mit Thunderbird 128.2 ein planmäßiges Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 128.2

Mit dem Update auf Thunderbird 128.2 hat die MZLA Technologies Corporation ein planmäßiges Update für seinen Open Source E-Mail-Client veröffentlicht. Das Update bringt diverse Fehlerbehebungen und Verbesserungen unter der Haube, welche sich in den Release Notes (engl.) nachlesen lassen. Auch wurden diverse Sicherheitslücken geschlossen.

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

Mozilla veröffentlicht Firefox 130

03. September 2024 um 21:04

Mozilla hat Firefox 130 für Windows, Apple macOS und Linux veröffentlicht. Dieser Artikel fasst die wichtigsten Neuerungen zusammen – wie immer auf diesem Blog weit ausführlicher als auf anderen Websites.

Download Mozilla Firefox für Microsoft Windows, Apple macOS und Linux

Verbesserungen der Übersetzungsfunktion

Firefox besitzt eine Übersetzungsfunktion für Websites, welche im Gegensatz zu Cloud-Übersetzern wie Google Translate lokal arbeitet, die eingegebenen Texte also nicht an einen fremden Server sendet. Dabei können wahlweise komplette Websites oder nur markierter Text übersetzt werden. Die Übersetzung von markiertem Text steht ab sofort auch unmittelbar nach einer vollständigen Website-Übersetzung zur Verfügung.

Firefox 130

Neben title und placebolder werden jetzt noch eine ganze Reihe weiterer HTML-Attribute übersetzt. Außerdem wurde die Übersetzungsqualität beim Vorkommen sogenannter bedingter Trennstriche verbessert.

Leichterer Vorab-Zugang zu kommenden Features

Im neuen Abschnitt „Firefox Labs“ der Firefox-Einstellungen lassen sich verschiedene Browser-Funktionen und Plattform-Features vorab aktivieren, an denen Mozilla arbeitet und deren standardmäßige Aktivierung für einen späteren Zeitpunkt geplant ist. Auf diese Weise kann Mozilla zusätzliches Feedback einholen, bevor neue Funktionen fertig sind und flächendeckend ausgerollt werden. Zwar gibt es mit about:config bereits einen Mechanismus zur Vorab-Aktivierung neuer Features, allerdings müssen die entsprechenden Optionsnamen dafür bekannt sein. Die Seite „Firefox Labs“ macht bestimmte Funktionen besser sichtbar und gibt dem Nutzer zusätzlich eine Beschreibung, teilweise auch mit erklärenden Links.

Firefox 130

KI-Chatbots

Eines der experimentellen neuen Features ist eine Chatbot-Integration. Dabei stehen Google Gemini, ChatGPT, HuggingChat, Anthropic Claude sowie Le Chat Mistral zur Verfügung. Die Chatbots können direkt über die Sidebar genutzt werden.

Über das Kontextmenü oder, falls über eine weitere Option aktiviert, eine Schaltfläche nach dem Markieren von Text können auch direkt Funktionen zur Zusammenfassung des markierten Inhalts, zur Vereinfachung der Sprache sowie zu einem Abfragen des Inhalts ausgewählt werden.

Firefox 130

Automatischer Bild-im-Bild-Modus bei Tabwechsel

Der sogenannte Bild-im-Bild-Modus erlaubt es, Videos von der Website loszulösen und über andere Tabs und sogar Anwendungen zu legen. Innerhalb des losgelösten Video-Fensters kann die Wiedergabe pausiert und wieder gestartet werden, man sieht den Wiedergabe-Fortschritt und kann an eine andere Stelle des Videos springen, ein Wechsel in den Vollbildmodus ist möglich, der Ton kann aus- und wieder eingeschaltet werden, die Lautstärke kann geändert werden und auch Untertitel werden auf vielen Plattformen unterstützt.

Über die „Firefox Labs“ kann eine neue Funktion aktiviert werden. Wird ein Video auf einer Website wiedergegeben, startet Firefox damit automatisch den Bild-im-Bild-Modus, wenn der Tab gewechselt wird. Sobald man wieder in den ursprünglichen Tab zurückkehrt, wird der Bild-im-Bild-Modus ebenso automatisch wieder beendet.

Automatischer Bild-im-Bild-Modus für Videos, Firefox 130

Lokale KI generiert Alternativtexte für Bilder in PDF-Dateien

PDF-Dateien betrachten ist in jedem Browser möglich. Firefox gehört zu den wenigen Browsern mit einem PDF-Editor. So kann auf PDF-Dateien gezeichnet werden, es können aber auch Texte und Bilder eingefügt werden.

Dabei besitzt Firefox bereits die Möglichkeit, einen Alternativtext für eingefügte Bilder zu hinterlegen. Dies ist aus Gründen der Barrierefreiheit wichtig, damit die Bildinformation auch für Menschen mit eingeschränkten Sehfähigkeiten bis hin zur Blindheit zugänglich bleibt.

Eine lokale KI kann den Anwender ab Firefox 130 dabei unterstützen. Damit schlägt Firefox basierend auf dem Bildinhalt automatisch einen Beschreibungstext für das hinterlegte Bild vor. Lokale KI bedeutet, dass sich Firefox das entsprechende KI-Modell bei der ersten Verwendung des Features herunterlädt und die Arbeit dann auf dem Gerät des Anwenders geschieht. Die eingefügten Bilder werden also zu keinem Zeitpunkt an Mozilla oder eine Drittanbieter-Cloud gesendet.

Firefox 130

Diese Neuerung wird schrittweise im Laufe der kommenden Wochen für alle Nutzer ausgerollt werden.

Zur manuellen Aktivierung müssen drei Schalter per about:config auf true gesetzt werden: browser.ml.enable, pdfjs.enableAltText und pdfjs.enableUpdatedAddImage. Die Vorschläge werden derzeit noch in englischer Sprache generiert.

Wetter und Hintergründe für Firefox-Startseite

Die Firefox-Startseite lässt sich jetzt auf Wunsch mit einem Hintergrundbild oder einer Hintergrundfarbe nutzen.

Für Nutzer in den USA und Kanada wird auf der Firefox-Startseite standardmäßig das Wetter angezeigt. Aber auch alle anderen können dieses Feature via about:config aktivieren, indem der Schalter browser.newtabpage.activity-stream.system.showWeather per Doppelklick auf true gesetzt wird.

Firefox 130

Personalisierung der Pocket-Empfehlungen auf Firefox-Startseite

Ein weiteres neues Feature für die Firefox-Startseite ist die optionale Personalisierung der Pocket-Empfehlungen. Dabei stehen die folgenden Kategorien zur Auswahl: Geschäftliches, Unterhaltung, Essen, Gesundheit, Finanzen, Politik, Sport, Technik, Reisen, Wissenschaft sowie Life-Hacks.

Firefox 130

Diese Neuerung wird schrittweise im Laufe der kommenden Wochen für alle Nutzer ausgerollt werden.

Nutzer in den USA, Kanada und Großbritannien erhalten dieses Feature zuerst. Aber auch alle anderen können dieses Feature via about:config aktivieren, indem der Schalter browser.newtabpage.activity-stream.discoverystream.topicSelection.enabled per Doppelklick auf true gesetzt wird.

Sonstige Endnutzer-Neuerungen von Firefox 130

Der sogenannte Overscroll-Effekt, der in Firefox auf Windows und macOS bereits seit langer Zeit aktiviert ist, ist nun auch auf Linux standardmäßig aktiviert. Dieser Effekt beschreibt das Verhalten, welches zu beobachten ist, wenn man über den Seitenanfang respektive das Seitenende hinaus scrollt.

Das bereits lange bestehende Problem, dass der Eintrag „Kopieren“ im Kontextmenü unter bestimmten Umständen manchmal ausgegraut war, wurde behoben.

Erweiterungen lösen nicht länger auf Websites den Berechtigungs-Indikator (blauer Punkt) in der Schaltfläche für das Erweiterungs-Menü aus, wenn die entsprechende Host-Berechtigung als optional deklariert ist.

Die Schaltfläche für die Aktivierung des Bild-im-Bild-Modus wurde für Hulu anders positioniert, um nicht hinter anderen Elementen des Videoplayers verdeckt zu sein.

Die Wiedergabe von AV1-Videos auf Windows-Systemen mit ARM-CPU wurde aktiviert.

Die Funktion zur Aufnahme eines Bildschirmfotos kann jetzt auch Elemente auswählen, welche sich innerhalb des sogenannten Shadow DOMs einer Website befinden.

Die Texte der Einstellungen für den Nur-HTTPS-Modus wurden vereinfacht und stellen nun klar, dass Firefox auch bei abgeschaltetem Nur-HTTPS-Modus zunächst eine Verbindung via HTTPS versucht.

Mehr Sicherheit für Firefox-Nutzer

Auch in Firefox 130 wurden wieder mehrere Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 130 daher für alle Nutzer dringend empfohlen.

Verbesserungen der Entwicklerwerkzeuge

Im Responsive Design Modus werden nicht länger automatisch der User-Agent und die Touch-Simulation zurückgesetzt, wenn man die Fenstergröße ändert.

Bei geöffneten Entwicklerwerkzeugen zeigt Firefox während des Veränderns der Fenstergröße die aktuelle Fenstergröße in der oberen rechten Ecke an.

Per Doppelklick auf ein Element im Inspektor lassen sich dort jetzt auch zusätzliche Attribute ergänzen.

Verbesserungen der Webplattform

Das name-Attribut des <details>-Elements erlaubt die Gruppierung von Elementen, bei denen nur ein Element einer Gruppe gleichzeitig offen sein kann. Ein Anwendungsfall hierfür sind Akkordeons, ohne dass dafür JavaScript benötigt wird.

Die hyphens-Eigenschaft in CSS funktioniert nun auch für Tschechisch und Slowakisch korrekt.

Firefox 130 unterstützt außerdem die WebCodecs API.

Dies war nur eine kleine Auswahl der Verbesserungen der Webplattform. Eine vollständige Auflistung lassen sich in den MDN Web Docs nachlesen.

Der Beitrag Mozilla veröffentlicht Firefox 130 erschien zuerst auf soeren-hentzschel.at.

Linux Q&A - Hauke und Jean beantworten Eure Fragen! - Live

03. September 2024 um 17:14

💾

Heute Abend klären wieder Hauke und Jean Deine Fragen live!
Wenn Du das Video unterstützen willst, dann gib bitte eine Bewertung ab, und schreibe einen Kommentar. Vielen Dank!

--------------------

Links:

Frage stellen: https://ask.linuxguides.de

Forum: https://forum.linuxguides.de/
Haukes Webseite: https://goos-habermann.de/index.php
Nicht der Weisheit letzter Schluß: youtube.com/@nichtderweisheit
Linux Guides Admin: https://www.youtube.com/@LinuxGuidesAdmin

Professioneller Linux Support*: https://www.linuxguides.de/linux-support/
Linux Mint Kurs für Anwender*: https://www.linuxguides.de/kurs-linux-mint-fur-anwender/
Ubuntu Kurs für Anwender*: https://www.linuxguides.de/ubuntu-kurs-fuer-anwender/
Linux für Fortgeschrittene*: https://www.linuxguides.de/linux-kurs-fuer-fortgeschrittene/
Offizielle Webseite: https://www.linuxguides.de
Tux Tage: https://www.tux-tage.de/
Forum: https://forum.linuxguides.de/
Unterstützen: http://unterstuetzen.linuxguides.de
Twitter: https://twitter.com/LinuxGuides
Mastodon: https://mastodon.social/@LinuxGuides
Matrix: https://matrix.to/#/+linuxguides:matrix.org
Discord: https://www.linuxguides.de/discord/
Kontakt: https://www.linuxguides.de/kontakt/
BTC-Spende: 1Lg22tnM7j56cGEKB5AczR4V89sbSXqzwN


Haftungsausschluss:
-------------------------------------
Das Video dient lediglich zu Informationszwecken. Wir übernehmen keinerlei Haftung für in diesem Video gezeigte und / oder erklärte Handlungen. Es entsteht in keinem Moment Anspruch auf Schadensersatz oder ähnliches.

*): Werbung

Information zum heutigen Ausfall von My-IT-Brain.de

02. September 2024 um 18:12

Der Virutal Private Server (VPS), welcher diesen Blog ausliefert, war heute in der Zeit zwischen 08:06 Uhr und 17:52 Uhr nicht erreichbar.

Screenshot aus meiner Uptime-Kuma-Instanz

Ursache ist eine Störung im Nürnberger Rechenzentrum meines Anbieters Contabo. Die Störung besteht offenbar schon seit dem 30.08. (siehe Screenhot der Meldung unten), betraf meinen VPS aber erst heute.

Screenshot einer Contabo-Status-Meldung aus meinen RSS Feed Reader
Screenshot der Contabo-Störungs-Meldung zum Zeitpunkt 2024-09-02T20:11+02

Die Störung bei Contabo ist noch nicht behoben. Es ist nicht auszuschließen, dass dieser Blog nocheinmal davon betroffen sein wird. Ich bitte in diesem Fall um etwas Geduld.

Demonstration von Ansible Lint am Beispiel einer Ansible Collection

02. September 2024 um 05:00

In diesem Beitrag erkläre ich kurz, was Ansible Lint ist und demonstriere dessen Anwendung am Beispiel meiner Ansible Collection tronde/nextcloud.

Er richtet sich primär an Personen, die mit Ansible Lint noch nicht vertraut sind. Linting-Profis werden vermutlich keine neuen Erkenntnisse gewinnen.

Was ist Ansible Lint und wofür ist es gut?

Lint (englisch für „Fussel“) ist eine Software zur statischen Code-Analyse. Davon abgeleitet hat sich das Verb linten (englisch to lint) für das Durchführen der statischen Code-Analyse etabliert.

https://de.wikipedia.org/wiki/Lint_(Programmierwerkzeug)

Dem obigen Zitat und der Projektdokumentation folgend, ist Ansible Lint dementsprechend ein Werkzeug zur statischen Code-Analyse von Ansible Playbooks, Roles und Collections. Mit der Anwendung dieses Werkzeugs auf die eigenen Ansible-Inhalte kann sichergestellt werden, dass diese gängigen Konventionen und Standards entsprechen.

Wie wird Ansible Lint installiert?

Die Dokumentation beschreibt verschiedene Installationsverfahren. Ich habe ansible-lint als Bestandteil der Ansible Development Tools (ADT) installiert. Dies ist ein Werkzeugkasten mit weiteren Programmen wie z.B. `ansible-core` und Ansible Molecule, welche ich für die Entwicklung meiner Ansible Collection nutze.

Auf meiner Fedora Workstation habe ich die ADT wie folgt installiert:

~]$ mkdir venv
~]$ cd venv
venv]$ ]$ python -m venv adt
venv]$ source adt/bin/activate
(adt) venv]$ pip install pip --upgrade
Requirement already satisfied: pip in ./adt/lib64/python3.12/site-packages (23.3.2)
Collecting pip
  Using cached pip-24.2-py3-none-any.whl.metadata (3.6 kB)
Using cached pip-24.2-py3-none-any.whl (1.8 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.3.2
    Uninstalling pip-23.3.2:
      Successfully uninstalled pip-23.3.2
Successfully installed pip-24.2
(adt) venv]$  pip install ansible-dev-tools
Collecting ansible-dev-tools
  Using cached ansible_dev_tools-24.7.2-py3-none-any.whl.metadata (11 kB)
… Ausgabe gekürzt
(adt) venv]$ adt --version
ansible-builder                          3.1.0
ansible-core                             2.17.3
ansible-creator                          24.7.1
ansible-dev-environment                  24.7.0
ansible-dev-tools                        24.7.2
ansible-lint                             24.7.0
ansible-navigator                        24.8.0
ansible-sign                             0.1.1
molecule                                 24.8.0
pytest-ansible                           24.8.0
tox-ansible                              24.8.0

Ansible Lint liefert eine ganze Reihe von Profilen mit, welche Autoren unterstützen, die Code-Qualität schrittweise zu verbessern. Der Befehl ansible-lint --list-profiles gibt die verfügbaren Profile mit einer Beschreibung aus.

Ich werde im Folgenden mit dem Profil shared arbeiten, welches für Autoren gedacht ist, die ihre Collection auf https://galaxy.ansible.com veröffentlichen möchten.

Eine Collection linten

Bevor es zur Sache geht, wechsel ich in das Projektverzeichnis meiner Ansible Collection und erstelle einen neuen Branch, mit dem Befehl git checkout -b lint. Die in meinem Repo vorhandene Datei .ansible-lint-ignore lösche ich, da ich im folgenden alle Fehler und Regelverstöße sehen möchte. Zu Beginn stellt sich mein Arbeitsverzeichnis wie folgt dar:

(adt) nextcloud]$ git status
On branch lint
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	deleted:    .ansible-lint-ignore

no changes added to commit (use "git add" and/or "git commit -a")

Das Programm ansible-lint besitzt mit der Option --fix die Fähigkeit, Fehler automatisch zu korrigieren und auch YAML-Dateien neu zu formatieren. Der folgende Code-Block umfasst die gekürzte Ausgabe, wenn das Kommando ansible-lint --profile=shared --fix im Arbeitsverzeichnis ausgeführt wird.

(adt) nextcloud]$ ansible-lint --profile=shared --fix
WARNING  Listing 37 violation(s) that are fatal
galaxy[no-changelog]: No changelog found. Please add a changelog file. Refer to the galaxy.md file for more info.
galaxy.yml:1

var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex. (NC_HTML) (vars: NC_HTML)
roles/backup_restore_nextcloud/defaults/main.yml:4

…

risky-file-permissions: File permissions unset or incorrect.
roles/backup_restore_nextcloud/tasks/main.yml:18 Task/Handler: Copy backup files to container host

no-changed-when: Commands should not change things if nothing needs doing.
roles/backup_restore_nextcloud/tasks/main.yml:40 Task/Handler: Import tarball contents into an existing podman volume

no-changed-when: Commands should not change things if nothing needs doing.
roles/backup_restore_nextcloud/tasks/main.yml:54 Task/Handler: Export podman volumes to tarballs

var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex. (MYSQL_DATABASE) (vars: MYSQL_DATABASE)
roles/deploy_nextcloud_with_mariadb_pod/defaults/main.yml:13

…

Read documentation for instructions on how to ignore specific rule violations.

Modified 6 files.
                     Rule Violation Summary                      
 count tag                    profile rule associated tags       
    33 var-naming[pattern]    basic   idiom                      
     1 risky-file-permissions safety  unpredictability           
     1 galaxy[no-changelog]   shared  metadata                   
     2 no-changed-when        shared  command-shell, idempotency 

Failed: 37 failure(s), 0 warning(s) on 25 files. Profile 'shared' was required, but 'min' profile passed.

Obige Ausgabe:

  • Benennt Funde mit Pfadangabe und Zeilennummer
  • Führt 37 Fehler auf, inkl. der Regeln, die nicht eingehalten werden; Beispiele
    • galaxy[no-changelog]: No changelog found. Please add a changelog file. Refer to the galaxy.md file for more info.
    • risky-file-permissions: File permissions unset or incorrect.
    • no-changed-when: Commands should not change things if nothing needs doing.
    • var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex.
  • Informiert, dass ansible-lint Änderungen an 6 Dateien vorgenommen hat

Mit git diff verschaffe ich mir einen Überblick, welche Änderungen ansible-lint vorgenommen hat. Dies sind in meinem Fall:

  • Quoting von Strings
  • Einrückung von Kommentaren

Als Nächstes sehe ich mir die übrigen Fehler der Reihe nach an. Die Dokumentation beinhaltet eine Übersicht mit Beschreibungen der einzelnen Regeln. Dies ist nützlich, wenn der kurze Text in der Ausgabe von ansible-lint nicht ausreichend ist.

galaxy[no-changelog]: No changelog found. Please add a changelog file.

Unter Galaxy: Changelog Details finden sich Hinweise, wie dieser Fehler zu beheben ist. Ich erstelle die leere Datei CHANGELOG.md im Wurzelverzeichnis meiner Collection und der Fehler ist abgestellt.

Natürlich werde ich diese Datei zukünftig nutzen, um die wichtigsten Änderungen zu dokumentieren. ;-)

risky-file-permissions: File permissions unset or incorrect.

Auch hier habe ich kurz in der Dokumentation unter risky-file-permissions nachgesehen. Den Fehler habe ich abgestellt, indem ich den Parameter mode: 0600 zum Task hinzugefügt habe.

Dies war ein Flüchtigkeitsfehler, wie er häufig passieren kann, wenn man seinen Code nicht konsequent überprüft. Ohne den Dateimode explizit zu setzen, kann dies zu unvorhersehbaren bzw. überraschenden Verhalten führen.

no-changed-when: Commands should not change things if nothing needs doing.

An zwei Stellen bin ich leider nicht herumgekommen, das ansible.builtin.command Modul zu verwenden, da kein natives Modul für diese Aufgabe existiert. Betrachtet man sich die beiden Tasks fällt auf, dass diese jedes Mal Daten verarbeiten werden. Sie sind nicht idempotent. Im Ergebnis können sie erfolgreich sein oder fehlschlagen, aber sie werden immer Daten verarbeiten und dadurch ändern.

 41     - name: Import tarball contents into an existing podman volume
 42       ansible.builtin.command:
 43         cmd: |
 44           podman volume import
 45           {{ item }} {{ backup_restore_nextcloud_import_path }}/{{ item }}.tar
 46       loop:
 47         - "{{ NC_HTML }}"
 48         - "{{ NC_APPS }}"
 49         - "{{ NC_CONFIG }}"
 50         - "{{ NC_DATA }}"
 51         - "{{ MYSQL_DATA }}"
 52            
 53 # I need to use the command module as the volume module lacks the functionality
 54 # to export podman volumes.
 55 - name: Export podman volumes to tarballs
 56   ansible.builtin.command:
 57     cmd: podman volume export {{ item }} --output {{ backup_restore_nextcloud_export_path }}/{{ item }}.tar
 58   loop:    
 59     - "{{ NC_HTML }}"
 60     - "{{ NC_APPS }}"
 61     - "{{ NC_CONFIG }}"
 62     - "{{ NC_DATA }}"
 63     - "{{ MYSQL_DATA }}"
 64   tags:    
 65     - never
 66     - backup

Um herauszufinden, wie ich ansible-lint zufriedenstellen kann, schaue ich wieder in der Doku unter no-changed-when nach. Nach der dortigen Beschreibung ist mein Fehler, dass ich den Rückgabewert des Kommandos nicht behandel. Daher registriere ich nun eine Variable je Task, die die Task-Ausgabe aufnimmt und prüfe den Rückgabewert. Ist der Rückgabewert gleich 0 wird der Task-Status auf changed gesetzt, ist der Rückgabewert ungleich 0 wird der Status entsprechend auf failed gesetzt. Das ganze sieht nun wie folgt aus:

 41     - name: Import tarball contents into an existing podman volume
 42       ansible.builtin.command:
 43         cmd: |
 44           podman volume import
 45           {{ item }} {{ backup_restore_nextcloud_import_path }}/{{ item }}.tar
 46       register: __import_tar_output
 47       changed_when: __import_tar_output.rc == 0
 48       failed_when: __import_tar_output.rc != 0
 49       loop:
 50         - "{{ NC_HTML }}"
 51         - "{{ NC_APPS }}"
 52         - "{{ NC_CONFIG }}"
 53         - "{{ NC_DATA }}"
 54         - "{{ MYSQL_DATA }}"
 55  
 56 # I need to use the command module as the volume module lacks the functionality
 57 # to export podman volumes.
 58 - name: Export podman volumes to tarballs
 59   ansible.builtin.command:
 60     cmd: podman volume export {{ item }} --output {{ backup_restore_nextcloud_export_path }}/{{ item }}.tar
 61   register: __import_tar_output
 62   changed_when: __import_tar_output.rc == 0
 63   failed_when: __import_tar_output.rc != 0
 64   loop:
 65     - "{{ NC_HTML }}"
 66     - "{{ NC_APPS }}"
 67     - "{{ NC_CONFIG }}"
 68     - "{{ NC_DATA }}"
 69     - "{{ MYSQL_DATA }}"
 70   tags:
 71     - never
 72     - backup

Collection-intern verwendete Variablen leite ich mit zwei Unterstrichen (‚_‘) ein, um mir zu verdeutlichen, dass diese nicht durch den Nutzer gesetzt werden und daher auch nicht im README.md oder defaults/main.yml dokumentiert sind.

var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex.

Hier brauche ich nicht weiter nachzuschlagen. Ich verstoße gegen diese Regel, da ich meine Variablen-Namen großgeschrieben habe. Die Ausgabe von ansible-lint zeigt dies deutlich:

var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex. (NC_HTML) (vars: NC_HTML)
roles/backup_restore_nextcloud/defaults/main.yml:4

Diese Meldungen lassen sich mit folgendem Bash-Einzeiler abstellen:

$ for text in $(cut -d':' -f 1 roles/deploy_nextcloud_with_mariadb_pod/defaults/main.yml | grep -v '^$\|^#\|---'); do find roles -type f -iname "*.yml" | xargs sed -i -e "s/$text/\L&/g"; done

Aus verschiedenen Gründen hebe ich mir die Überarbeitung für später auf und nutze die Meldung, um zu demonstrieren, wie man ansible-lint dazu bringt, bestimmte Fehler zu ignorieren.

Um Regeln für ausgewählte Dateien zu ignorieren, spezifiziert man den jeweiligen Dateinamen und den Namen der Regel in der Datei .ansible-lint-ignore, welche im Wurzelverzeichnis der Collection erstellt wird:

nextcloud]$ cat .ansible-lint-ignore 
roles/deploy_nextcloud_with_mariadb_pod/defaults/main.yml var-naming[pattern]
roles/backup_restore_nextcloud/defaults/main.yml var-naming[pattern]

Zweiter Durchgang mit ansible-lint

Damit habe ich alle Probleme, die im ersten Durchlauf von ansible-lint gefunden wurden, adressiert. Ein zweiter Durchlauf zeigt das Ergebnis meiner Arbeit:

(adt) nextcloud]$ ansible-lint --profile=shared
WARNING  Listing 33 violation(s) marked as ignored, likely already known
var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex. (NC_HTML) (vars: NC_HTML) (warning) # ignored
roles/backup_restore_nextcloud/defaults/main.yml:4

…Ausgabe gekürzt

WARNING  Listing 1 violation(s) that are fatal
yaml[octal-values]: Forbidden implicit octal value "0600"
roles/backup_restore_nextcloud/tasks/main.yml:22

Read documentation for instructions on how to ignore specific rule violations.

                Rule Violation Summary                 
 count tag                profile rule associated tags 
     1 yaml[octal-values] basic   formatting, yaml     

Failed: 1 failure(s), 33 warning(s) on 27 files. Profile 'shared' was required, but 'min' profile passed.

Die ignorierten Regelverstöße werden als Warnung weiterhin ausgegeben, nehmen jedoch keinen Einfluss auf die abschließende Bewertung. Dafür habe ich einen neuen Fehler (yaml[octal-values]) eingebaut. Nach dem aktuellen Regelwerk erfordern oktale Werte ein explizites Quoting, um als Strings verarbeitet zu werden.

Nachdem ich das Problem mit mode: '0600' behoben habe, endet ein weiterer Lauf von ansible-lint schlussendlich mit:

Passed: 0 failure(s), 33 warning(s) on 27 files. Profile 'shared' was required, but 'production' profile passed.

Damit erfüllt meine Collection aktuell sogar die Anforderungen des nächst höheren Profils production; allerdings nur, weil ich einige Regeln bewusst ignoriere. Daher ist aktuell noch nicht sichergestellt, dass meine Collection tatsächlich bei einem Import auf Ansible Galaxy akzeptiert wird.

Zusammenfassung

  • Ansible Lint ist ein Werkzeug zur statischen Analyse von Ansible Playbooks, Roles und Collections
  • Das Werkzeug unterstützt Autoren dabei, gängige Konventionen und Standards einzuhalten und die Qualität des eigenen Codes auf einem Mindest-Niveau zu halten
  • Ansible Lint bietet mehrere Profile für verschiedene Anwendungsfälle
  • Regeln können bei Bedarf ignoriert werden, was zwar das Ergebnis des Linting beeinflusst, die Qualität jedoch nicht steigert
  • Linting sollte fester Bestandteil des eigenen Entwicklungsworkflows sein und stets nach Änderungen durchgeführt werden

Ich persönlich führe ansible-lint gern in einem eigenständigen Schritt aus. Es besteht jedoch auch die Möglichkeit, dies in den verwendeten Editor, die genutzte IDE oder Molecule zu integrieren und bei Änderungen automatisch laufen zu lassen.

Ich freue mich, wenn euch dieser Artikel gefallen hat.

Quellen und weiterführende Links

Elasticsearch nimmt AGPL als Lizenz auf

31. August 2024 um 12:09

Interessanter Gegentrend: Während ich vor ziemlich genau einem Jahr über das zu der Zeit aktuellste Beispiel HashiCorp schrieb, wo eine Umstellung auf BSL-artige Lizenzen erfolgte, scheint es wohl auch einige Kandidaten zu geben, die wieder auf OSI-genehmigte Lizenzen umstellen. So verkündete Elastic am vergangenen Donnerstag, das sie wieder mit ihrer Suchmaschinensoftware Elasticsearch "Open Source" werden möchten, indem sie die AGPL als Lizenzoption aufnehmen.

Hintergrund

Hier einmal der Hintergrund bis jetzt, so wie es auf mich als externen Beobachter wirkte: Open Source hat es im Zeitalter der Cloud recht schwer, wenn man damit Geld verdienen möchte (um z. B. die Entwicklung zu finanzieren!). Das verbreitete Standardmodell zur Monetarisierung war bisher, eine Software Open Source anzubieten und den Support oder das Hosting kostenpflichtig anzubieten. Aus Kundensicht bestellt man dann direkt bei dem Hersteller, der seine Software auch am besten verstehen sollte.

Cloud Provider haben dem Modell das Wasser abgegraben, da sie einfach die Open Source Software nehmen und auf ihrer Plattform deployen konnten – ohne einen Cent dem Projekt zahlen zu müssen. Teilweise wurde die Software erweitert, ohne, die Änderungen wieder veröffentlichen zu müssen (deswegen sind auch die MIT- und BSD-Lizenzen so beliebt). Aus Kundensicht kauft man zwar nicht mehr bei dem Hersteller ein, hat aber

  • einerseits alles zentralisiert auf einer Cloudplattform und
  • andererseits gar keinen Bedarf für Herstellersupport, weil die Software sowieso über das SaaS-Modell supported wird und nicht mehr on-premise läuft.

Die Antwort vieler Projekte war es nun, die Lizenz so zu ändern, dass dieses Verhalten nicht mehr möglich ist, z. B. durch die Beschränkung von Konkurrenz-Hostingprodukten. Das verstößt allerdings gegen das Diskriminierungsverbot der OSI, nach dem die Verwendung von Produkten nicht durch die Lizenz beschränkt werden sollte (siehe auch das Good-Evil-Thema bei der JSON-Lizenz).

In der Konsequenz spalteten sich wie mit Open Search Elasticsearch-Forks ab, die weiterhin die offenen Lizenzen nutzen und durch Cloud Provider wie AWS direkt gepflegt wurden und werden. Wie Elasticsearch betont, sollen diese Projekte aber gleichzeitig auch einen eigenen Weg mit eigener Spezialisierung entwickelt haben. Die Community war natürlich aber auch verärgert, da die Software Elasticsearch nun nicht mehr als Free Open Source Software (FOSS) galt.

Wieder Open Source

Elasticsearch plant nun die Wogen zu glätten, indem die AGPL als weitere Lizenz zur ELv2 und SSPL zusätzlich aufgenommen wird. Die Nutzer können also frei entscheiden, welche Lizenz sie nutzen wollen, da insbesondere im Geschäftskontext die AGPL juristisch gesehen als heikel eingeschätzt wird, wenn man das Produkt aus verschiedenen Komponenten zusammengebaut und nicht den gesamten Quelltext veröffentlichen möchte. FOSS-Nutzer und Distributionen haben allerdings wieder die Möglichkeit, die Software wiederaufzunehmen. So entspricht z. B. die AGPL den Debian Free Software Guidelines.

Ende gut, alles gut? Wenn es nach der Ankündigung von Elastic geht, ist das Team zufrieden mit der Entscheidung, wieder Open Source zu sein. Ob der Fork OpenSearch aufrecht erhalten wird oder schlussendlich in das Urprodukt einfließt, ist allerdings noch nicht gewiss und muss sich in der Zukunft zeigen. Vielleicht sind die Communities auch schon zu sehr divergiert, sodass es nun unterschiedliche Lösungen für unterschiedliche Anwendungsfälle gibt.

Ganz leicht Ordner synchronisieren: Syncthing installieren und einrichten

30. August 2024 um 13:00

💾

#opensource #linux #linuxguides
In diesem Video zeigt Jean, wie man Syncthing installiert und einrichtet, um im lokalen Netzwerk Ordner von verschiedenen Rechnern zu synchronisieren.
Wenn Du das Video unterstützen willst, dann gib bitte eine Bewertung ab, und schreibe einen Kommentar. Vielen Dank!

Links:
-------------------------------------
Syncthing Download: https://syncthing.net/downloads/

Linux-Guides Merch*: https://linux-guides.myspreadshop.de/
Professioneller Linux Support*: https://www.linuxguides.de/linux-support/
Linux-Arbeitsplatz für KMU & Einzelpersonen*: https://www.linuxguides.de/linux-arbeitsplatz/
Linux Mint Kurs für Anwender*: https://www.linuxguides.de/kurs-linux-mint-fur-anwender/
Offizielle Webseite: https://www.linuxguides.de
Forum: https://forum.linuxguides.de/
Unterstützen: http://unterstuetzen.linuxguides.de
Mastodon: https://mastodon.social/@LinuxGuides
X: https://twitter.com/LinuxGuides
Instagram: https://www.instagram.com/linuxguides/
Kontakt: https://www.linuxguides.de/kontakt/

Inhaltsverzeichnis:
-------------------------------------
0:00 Einleitung
1:02 Syncthing vorgestellt
2:10 Installation
3:43 Konfiguration
4:55 Geräte verbinden
7:55 Dateien synchronisieren
9:21 Weitere Einstellungen
12:10 Ende


Haftungsausschluss:
-------------------------------------
Das Video dient lediglich zu Informationszwecken. Wir übernehmen keinerlei Haftung für in diesem Video gezeigte und / oder erklärte Handlungen. Es entsteht in keinem Moment Anspruch auf Schadensersatz oder ähnliches.

*) Werbung

Thunderbird Appointment offiziell angekündigt

29. August 2024 um 20:15

Mit Thunderbird Appointment hat die MZLA Technologies Corporation die Betaphase einen neuen Online-Dienstes gestartet, welcher die Terminplanung vereinfachen soll. Nun wurde der neue Dienst erstmals offiziell angekündigt.

Bereits im Mai hatte ich die Pläne der MZLA Technologies Corporation enthüllt, mit Thunderbird Appointment einen neuen Dienst zur Terminplanung online zu bringen. Vor wenigen Tagen berichtete ich über den Start der Warteliste für die Betaphase. Nun hat MZLA Thunderbird Appointment auch offiziell angekündigt.

Jetzt auf Warteliste für Thunderbird Appointment Beta eintragen

Viele neue Informationen gibt es nicht, dafür aber zwei neue Screenshots. Außerdem beschreibt MZLA seinen neuen Dienst als Teil eines größeren Vorhabens, in Zukunft nicht nur einen E-Mail-Client, sondern eine ganze Reihe an Produktivitätswerkzeugen bereitzustellen, welche den Alltag effizienter und stressfreier machen sollen.

Thunderbird Appointment Thunderbird Appointment

Der Beitrag Thunderbird Appointment offiziell angekündigt erschien zuerst auf soeren-hentzschel.at.

❌
❌