LibreOffice unter Debian aus GNOME entfernen

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : Debian, LibreOffice, Linux, OpenSource

Möchte man LibreOffice unter GNOME deinstallieren, um es gegen die aktuellste Version auszutauschen oder ganz einfach nur loszuwerden, stößt man sehr bald auf ein gravierendes Problem:

sudo apt-get purge libreoffice*
Paketlisten werden gelesen...
Abhängigkeitsbaum wird aufgebaut....
Statusinformationen werden eingelesen....
Paket »libreoffice-filter-binfilter« ist nicht installiert, wird also auch nicht entfernt.
Paket »libreoffice-filter-mobiledev« ist nicht installiert, wird also auch nicht entfernt.
Paket »libreoffice-help-en« ist nicht installiert, wird also auch nicht entfernt.
[...]
Die folgenden Pakete werden ENTFERNT:
gnome* libreoffice* libreoffice-avmedia-backend-gstreamer* libreoffice-base* libreoffice-base-core* libreoffice-base-drivers* libreoffice-calc* libreoffice-common* libreoffice-core* libreoffice-draw* libreoffice-evolution* libreoffice-gnome* libreoffice-gtk* libreoffice-help-de* libreoffice-help-en-us* libreoffice-impress* libreoffice-java-common* libreoffice-l10n-de* libreoffice-math* libreoffice-report-builder-bin* libreoffice-sdbc-firebird* libreoffice-sdbc-hsqldb* libreoffice-style-galaxy* libreoffice-style-tango* libreoffice-writer* mythes-de* mythes-de-ch* mythes-en-us* python3-uno* unoconv*
0 aktualisiert, 0 neu installiert, 30 zu entfernen und 1 nicht aktualisiert.

Wie man sieht, deinstalliert das Entfernen von LibreOffice scheinbar auch den Gnome-Desktop. Wird die Deinstallation fortgesetzt, passiert zunächst jedoch nicht viel. LibreOffice wird deinstalliert, ebenso das Paket GNOME. Hierbei handelt es sich allerdings nur um ein sogenanntes Metapaket, also ein virtuelles Paket, das zur Installation mehrerer Pakete genutzt wird. Deinstalliert man also das Paket GNOME, wird nicht der gesamte Desktop sofort deinstalliert, sondern die von diesem Paket abhängigen Pakete zunächst als Ballast im System gekennzeichnet, der sich theoretisch mit dem Befehl "sudo apt-get autoremove" entfernen lässt.

Paketlisten werden gelesen...
Abhängigkeitsbaum wird aufgebaut....
Statusinformationen werden eingelesen....
Die folgenden Pakete werden ENTFERNT:
argyll cheese file-roller finger firebird2.5-common firebird2.5-common-doc firebird2.5-server-common fonts-lyx fonts-opensymbol fonts-sil-gentium fonts-sil-gentium-basic gedit gedit-common gedit-plugins gir1.2-gdata-0.0 gir1.2-goa-1.0 gir1.2-gucharmap-2.90 gir1.2-rb-3.0 gnome-color-manager gnome-documents gnome-games gnome-nettool gnome-sudoku gnome-video-effects hamster-applet iagno icedtea-netx icedtea-netx-common iputils-tracepath libdiscid0 libfbclient2 libfbembed2.5 libgpod-common libgpod4 libhyphen0 libmythes-1.2-0 libnatpmp1 libsofia-sip-ua-glib3 libsofia-sip-ua0 lightsoff lp-solve media-player-info openjdk-6-jre python-wnck quadrapassel rhythmbox rhythmbox-data rhythmbox-plugin-cdrecorder rhythmbox-plugins seahorse simple-scan sound-juicer swell-foop telepathy-rakia transmission-common transmission-gtk uno-libs3 ure xdg-user-dirs-gtk xfonts-mathml

Spätestens hier sollte man abbrechen, möchte man sein Desktop-System nicht nahezu unbrauchbar machen. Wie also verhindern, dass die Pakete via autoremove entfernt werden? Im Grunde ganz einfach: Man markiert die betreffenden Pakete als manuell installiert. Hierfür ist der Befehl "apt-mark" zuständig. Um mir die Schreibarbeit etwas zu erleichtern, habe ich zunächst mit
sudo apt-get -s autoremove > ./Paketliste.txt
eine Simulation des Autoremove-Vorgangs in eine Textdatei umgeleitet. Diese wird dann mit einem Texteditor so bearbeitet, dass lediglich die Zeilen mit den zu entfernenden Paketen darin stehen, alle weiteren Zeilen darüber und darunter werden gelöscht. (Ja, vermutlich geht das auch einfacher über dpkg, dieser Befehl war jedoch nicht auf die Schnelle zu finden.) Um die Pakete nun als manuell installiert zu markieren, genügt der Befehl:
sudo apt-mark manual $(cat '/Pfad/zur/Paketliste.txt')
Die betreffenden Pakete sind nun nicht mehr als automatisch installiert gekennzeichnet und sind via "apt-get autoremove" auch nicht mehr entfernbar. Somit hätten wir LibreOffice also ohne Probleme aus Gnome entfernt.

AnsiWeather: Wetteranzeige für die Shell

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : Linux, OpenSource, Shell

Gerade bei den Recherchen zu einem Projekt gefunden: AnsiWeather, eine Wetteranzeige für die Shell.
Dieses Script zeigt kompakt die aktuellen Wetterbedingungen für einen Ort im Terminal an, dabei werden ANSI-Farben und Unicode-Symbole unterstützt. Die Daten werden über die OpenWeatherMap-API abgerufen. Alle Optionen (Ort, Einheiten, Sonnenauf- und Untergang etc) werden dem Script per Parameter beim Aufruf übergeben oder können auch über die Datei .ansiweatherrc im Home-Verzeichnis des Benutzers angepasst werden. Die Auswahl des Ortes ist im Gegensatz zu anderen Wetter-API's vergleichsweise einfach und besteht lediglich aus den Werten "Ortsname,CC", wobei CC für einen Ländercode steht. Für Deutschland könnte eine solche Ortsangabe also "Berlin,DE" lauten.
Das Umleiten in eine Textdatei, wie es für mein Projekt beabsichtigt war, ist in der Standard-Konfiguration zwar generell möglich, sorgt aber für unschönen Zeichensalat im Text, der durch die Unicode-Symbole in der Ausgabe zu erklären sein dürfte. Eine Anpassung des Scripts ist also ratsam.

Orca im MATE-Desktop nutzen

Geschrieben von Steffen Schultz 2 Kommentare
Kategorisiert in : Software Schlüsselwörter : A11Y, Linux, MATE, OpenSource, Orca

Auch wenn die MATE-Desktopumgebung eine Abspaltung des GNOME-2-Desktops ist, funktioniert der Screen-Reader Orca nicht so, wie man es von GNOME her erwarten würde. Startet man Orca über den Anwendungsdialog (Alt+F2), ertönt zunächst nur die Meldung "Willkommen bei Orca", der Bildschirm lässt sich jedoch nicht auslesen. Grund hierfür ist, dass MATE (und vermutlich auch einige andere Desktop-Umgebungen) ein GTK-Modul benötigen, welches die notwendigen Schnittstellen für Orca bereitstellt.

Um es zu laden, muss im Ordner /etc/profile.d eine Datei beliebigen Namens (z. B. gtk-access.sh) mit folgendem Inhalt erstellt und mit chmod 755 für den Benutzer "root" ausführbar gemacht werden:

#!/bin/bash
export GTK_MODULES=gail:atk-bridge
Nun noch die Zugänglichkeitsoptionen für MATE über das Terminal oder die Shell setzen:
gsettings set org.mate.interface accessibility true
gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true

Bzw. als Shell-Befehl:
dbus-launch gsettings set org.mate.interface accessibility true
dbus-launch gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true

Jetzt sollte sich Orca auch in MATE starten lassen und die Arbeitsfläche vorlesen. Soll der Screen-Reader automatisch nach der Anmeldung starten, muss dies im Systemmenü unter Einstellungen -> bevorzugte Anwendungen auf der Registerkarte Barrierefreiheit aktiviert werden.
Die Navigation unter MATE ist dann größtenteils so, wie man es von GNOME her kennt, wenn auch hier und da mit einigen unschönen Bugs. So ist es z. B. nicht möglich, mehr als eine Seitenleiste auszulesen. Dieser Bug scheint dabei kein Orca-Problem zu sein, sondern ein direktes MATE-Problem. Da das obere Panel von den meisten Anwendern wahrscheinlich häufiger genutzt werden wird, standardmäßig mit STRG+Alt+Tab jedoch nicht angesprungen werden kann, muss daher zunächst das untere Panel gelöscht werden. Leider ist dies nur mit der Maus möglich (Rechtsklick auf die Leiste -> Leiste löschen), was sich mit Orcas Mausverfolgung jedoch recht problemlos bewerkstelligen lässt. Des Weiteren lassen sich Benachrichtigungs-Popups nicht auslesen und Qt-Anwendungen wie Skype sorgen für Navigationsprobleme.

Quelle: Wiki.vinuxproject.org

Airtime: Radioautomation auf Basis von Liquidsoap

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : Linux, OpenSource, Streaming, Webradio

Auch wenn ich zum Jahresende meine Mitarbeit bei SLANG Radio aufgeben muss, habe ich mich in den vergangenen Wochen in einer Testumgebung mit der von Sourcefabric entwickelten und komplett Browser-basierten Radio-Automation Airtime befasst. Hierbei handelt es sich um eine All-in-one-Lösung, welche theoretisch ohne händische Eingriffe den kompletten Betrieb einer Radiostation realisieren kann. Man könnte Airtime auch als eine eierlegende Wollmilchsau für den Radiomacher bezeichnen. Doch wie so oft kommt es gerade bei Allround-Software auf die Details an, bei denen es an mancher Stelle noch Verbesserungsbedarf gibt - aber dazu später mehr.

Aufbau und Installation

Im Backend von Airtime kommt eine Playout-Engine zum Einsatz, welche auf Liquidsoap basiert, als Datenbank wird standardmäßig auf PostgreSQL gesetzt. Des Weiteren ist ein Media-Monitor enthalten, der automatisch neu hinzugekommene Dateien im Dateisystem überwacht und sie in die Bibliothek einliest. Das Frontend wurde in PHP realisiert und sollte problemlos auf einem Apache-Webserver lauffähig sein. Das Sendesignal kann an lokale oder externe Icecast- und Shoutcast-Server (vermutlich nur Shoutcast 1.X) gestreamt werden, lässt sich aber auch über eine vorhandene Soundkarte wiedergeben.
Airtime läuft unter Linux und kann je nach Distribution relativ einfach auch von Leihen installiert werden. Wem eine Standardkonfiguration ausreicht, kann sich für Debian-basierte Systeme einen Auto-Installer als Deb-Paket herunterladen, welcher dann alle weiteren benötigten Pakete herunterlädt und die Konfiguration anpasst. Natürlich lässt sich Airtime auch von Hand installieren, um bereits im System vorhandene Konfigurationen nicht zu gefährden oder um von der Standardkonfiguration abzuweichen. Diese Variante werden vor allem sicherheitsbewusste Administratoren vorziehen, da Airtime an einigen Stellen keine sehr restriktive Konfiguration aufweist und einige Dienste sogar unter dem Root-Benutzer laufen lässt. Begründet wird dies damit, dass man es den Nutzern so einfach wie möglich machen möchte, ihr eigenes Radio an den Start zu bringen. Möchte man sich aber gar nicht selbst mit der Pflege eines Airtime-Systems befassen, bietet Sourcefabric unter der Bezeichnung Airtime Pro auch eine Managed-Hosting-Lösung an.

Die Funktionen

Nach dem ersten Anmelden präsentiert sich der Startbildschirm als weitgehend inhaltslose Ansicht, da noch keine Sendungen geplant sind. Wurden bereits Sendungen eingetragen, sieht man hier die gerade laufenden sowie noch ausstehende Songs und kann letzte Änderungen von Hand vornehmen. Alle Optionen zum Planen einer Sendung sind schnell über das Menü im oberen Seitenbereich erreichbar und sinnvollerweise so angeordnet, dass sich alle Aufgaben nacheinander abarbeiten lassen. Zuerst Medien importieren, danach in der Bibliothek Playlisten, Smart-Blöcke oder Webstreams anlegen und schließlich im Kalender die gewünschte Sendung planen. Im Menü System lassen sich u. a. die Airtime-Einstellungen und Ausgabe-Streams bearbeiten sowie Benutzer und zusätzliche Medien-Ordner verwalten. Auch an die rechtliche Seite wurde gedacht, denn im Menü Verlauf können gespielte Songs nachvollzogen und z. B. als Report für Verwertungsgesellschaften ausgedruckt werden. Im Hilfe-Menü findet sich schließlich noch der Link zum Benutzerhandbuch, in welchem alle Optionen ausführlich beschrieben sind. Die gesamte Bedienung wird durch Javascript für Echtzeit-Aktualisierungen unterstützt, ist dabei aber auch von Screen-Reader-Nutzern weitgehend hervorragend nutzbar.

Airtime kann sowohl automatisierte als auch Live-Sendungen abwickeln. Dazu stellt das System 3 verschiedene Inputs bereit, deren Status im Seitenkopf angezeigt wird. Als geplante Wiedergabe wird die reine Sende-Automation bezeichnet, während Show-Source und Master-Source für externe Eingänge gedacht sind, also Live-Sendungen. Dabei ist die Master-Source der Sende-Eingang mit höchster Priorität und kann für spontane Live-Sendungen ohne Kalender-Planung verwendet werden, während die Show-Source ein geplantes Live-Streaming ermöglicht. Ein in den Einstellungen konfigurierbares Crossfading sorgt dafür, dass die Übergänge zwischen Live- und Automationsbetrieb sauber klingen und es zu keinen Knacksern kommt, wie etwa bei einer manuellen Icecast-Mountpoint-Konfiguration.
Der Automationsbetrieb lässt sich sehr variabel gestalten. Sind genügend Songs in der Bibliothek, lassen sich ohne großen Aufwand mit sogenannten Smart-Blöcken dynamische oder statische Playlisten erstellen, die nach verschiedenen Kriterien gestaltet werden können. Natürlich lassen sich Playlisten auch von Hand mit Songs füllen. Zu beachten ist, dass Airtime die ID3-Tags zur Verwaltung der Musik verwendet. Es sollte also nicht nur auf eine korrekte UTF8-Beschriftung der Dateien geachtet werden, sondern auch auf möglichst vollständige Tags, damit sich die Musikstücke schnell wiederfinden lassen. Wer seine Playlisten nach Themen anlegt, muss also die ID3-Tags nutzen, um vorher die Musik entsprechend zu kennzeichnen (Album, Genre, Kommentar etc). Stehen diese Informationen nach einmaliger Fleißarbeit aber zur Verfügung, lassen sich in Windeseile die gewünschten Playlisten erstellen.

Die kleinen Kleinigkeiten

Im Großen und Ganzen ist Airtime eine sehr gelungene Automationslösung, die es bei richtiger Konfiguration mit kommerziellen Produkten aufnehmen kann. Manche Funktionen lassen sich aber noch nicht in der Standardkonfiguration realisieren, sodass Airtime sicher nicht für jedes Radio geeignet sein dürfte. So fehlt z. B. die Möglichkeit, das Sendesignal mit einem Compressor/Limiter zu bearbeiten. Stattdessen setzt Airtime automatische Replaygain-Tags, um die Lautstärke der Songs auf gleichem Level zu halten. Was für den Automationsbetrieb durchaus in Ordnung klingt und ohnehin jeder matschigen Radio-Kompression vorgezogen werden sollte, stellt sich spätestens bei den Live-Sendungen als Problem heraus. Hier muss der Moderator selbst dafür Sorge tragen, dass sein Sendesignal angepasst wird. Anderenfalls könnte man das Signal durch einen externen Prozessor leiten, was jedoch bei niedrigen Bitraten zu Lasten der Klangqualität gehen kann, da Airtime ohnehin schon die eingehenden Streams intern neu kodiert.
Ein weiteres Problem ist der recht primitive Crossfader, der einen sauberen Übergang zwischen den Songs ermöglichen soll. Zwar können Crossfading, Fade-In und Fade-Out konfiguriert werden, doch fehlt ein sogenannter Gap-Killer, um Stille am Ende eines Tracks dynamisch durch Einblenden des nächsten Songs auszugleichen. Der integrierte Stille-Erkenner zum Setzen der Cue-Points wirkt leider nur unzureichend, sodass es schwer ist, die richtige Crossfading-Einstellung zu finden. In meinem Test hat sich aber eine Dauer von 3 Sekunden als die am saubersten klingende Lösung herausgestellt. Unter Umständen lässt sich mit einem Audio-Trimmer hier noch mehr herausholen, was ich allerdings nicht näher getestet habe.
Bislang noch nicht realisiert, aber laut eines Blogeintrags für zukünftige Versionen geplant sind wiederkehrende Shows mit Inhalten aus Smart-Blöcken, sodass nicht jeden Tag aufs Neue die Automation für Musikstrecken programmiert werden muss.

Alles in allem ist Airtime aber eine durchaus brauchbare Automationslösung, deren Entwicklung noch längst nicht abgeschlossen sein dürfte und sicher die ein oder andere Problemstelle noch beseitigt wird. Schade nur, dass ich meinen Testsender wohl nie in den Regelbetrieb schicken können werde.

Piespeakup: Neuer Sprachausgaben-Renderer behebt Soundprobleme beim Raspberry Pi

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : A11Y, Linux, OpenSource, Raspberry Pi

Prinzipiell ist der Raspberry Pi auch für blinde Anwender nutzbar - entweder per Fernzugriff via SSH oder direkt per Tastatur, sofern ein entsprechender Screen-Reader installiert ist. Gerade die zweite Variante brachte allerdings bisher wenig Spaß bei der Arbeit mit der Himbeere. Zwar sind die benötigten Pakete (Speakup, eSpeak etc) bei Raspbian und auch Arch Linux verfügbar, doch in der Praxis sind sie bisher kaum nutzbar. Vor allem in Raspbian scheint es Probleme mit dem Soundtreiber zu geben und es kommt zu einem Stottern der Sprachausgabe oder sogar zu kompletten Abstürzen des Kernels.

Aus der Raspberry-VI-Community kommt jetzt allerdings Abhilfe für dieses Problem. Michael A. Ray, Betreuer der zur Community gehörenden Mailingliste, hat sich an die Arbeit gemacht und eine alternative Rendering-Engine für Speakup und dessen Sprachausgaben-Connector programmiert. Diese benutzt nicht mehr den instabilen Soundtreiber, sondern verarbeitet die Sprachausgabe im Grafikprozessor (GPU), ist also nicht auf Alsa, Pulseaudio oder andere Systeme angewiesen. Derzeit handelt es sich bei Piespeakup zwar nur um eine modifizierte Version des ursprünglichen eSpeakup-Connectors, doch sie erfüllt schon jetzt ihren Zweck.

Wer eine erste Alphaversion testen möchte, kann mit folgenden Schritten alle benötigten Komponenten herunterladen, kompilieren und installieren (Git muss installiert sein):
cd /usr/local/src

# Herunterladen der Quelldateien
git clone https://github.com/cromarty/ttsprojects.git

# Kompilieren und installieren der benötigten Bibliothek
cd ttsprojects/raspberry-pi/libilctts/build
sudo ./build.sh

# Piespeakup und dessen Abhängigkeiten einrichten
cd ../../piespeakup
sudo ./build.sh

Ist alles ohne Fehlermeldungen abgelaufen (bei mir kam es zu diversen Warnungen, die man aber ignorieren kann), kann der Raspberry Pi neugestartet werden und sollte bei angeschlossenem Lautsprecher die Bootnachrichten automatisch vorlesen. Möchte man die Sprachausgabe auf eine andere Sprache umstellen, muss noch die Datei /etc/default/piespeakup bearbeitet werden. Dort lässt sich auch konfigurieren, ob die Sprachausgabe über den HDMI-Anschluss gesendet werden soll. Nach einem weiteren Reboot oder mittels
service piespeakup restart
werden die Änderungen übernommen. Bei einer Änderung der Tonausgabe (Local oder HDMI) muss jedoch der Pi komplett neugestartet werden.

Das Projekt befindet sich noch in der Entwicklung. Geplant ist eine Unterstützung für Emacspeak sowie ein Modul für den Speech-Dispatcher, welches theoretisch dann auch die grafische Oberfläche mit Orca zugänglich machen würde.

Artikel-Feed (RSS) dieser Tag