courier, dovecot, sieve, push mail
Monday, January 23. 2012
Courier tat seine Arbeit an sich wunderbar, aber in der Integration von desktop- und mobilem Mailabruf stand es mir dann doch im Wege. Ich wollte
- mail-Sortierung und -filterung auf dem Server
- dazu gerne das sieve-Addon zu ThunderBird nutzen
- push-mail für k-9 mail auf meinem android verlaesslich und doch batterieschonend einrichten
Das sprach für einen Wechsel von Courier zu dovecot. Dabei habe ich auf debian oldstable (Lenny) einige Varianten durchprobiert.
Ein paar hilfreiche WebSeiten vorweg, Migration to Dovecot (1.0), Courier to Dovecot
courier -> dovecot 1.0
Der erste Anlauf blieb geradewegs im Rahmen des in der Distribution enthaltenen:
apt-get install dovecot-imapd dovecot-pop3d
dovecot --version (1.0.15-2.3+lenny1)
Weiter, nach Maßgabe des dovecot-Wiki, mit dem Script zur Migration der Daten
cd /usr/local/bin
mkdir dovecot-mig
cd dovecot-mig/
wget http://www.dovecot.org/tools/courier-dovecot-migrate-1.0.pl
./courier-dovecot-migrate-1.0.pl --recursive --convert /home
Und zur Dovecot - Konfiguration:
Für SSL bietet dovecot.conf viele Felder aber ich wollte einfach das auch für Courier eingesetzte chained certificate weiterverwenden, ging so:
joe dovecot.conf
# chained certificate doppelt eintragen
ssl_cert_file = /etc/ssl/certs/startssl/mail.domain.tld.pem
ssl_key_file = /etc/ssl/certs/startssl/mail.domain.tld.pem
# dovecot 1.0 lauscht so an IPv4 und IPv6
listen = [::]
# Pfad zum maildir
mail_location = maildir:~/Maildir
# namespace wie courier
namespace private {
prefix = INBOX.
separator = .
inbox = yes
}
dovecot neu starten:
/etc/init.d/dovecot restart
Ergebnis? Beim ersten start des MUA (Thunderbird) gab es einen Wald von Messageboxen und Thunderbird war eine Weile beschaeftigt, Mails zu synchronisieren. Ansonsten gings soweit ohne Drama, nur das Mail-filtern wollte nicht.
courier -> dovecot 1.2
Im zweiten Anlauf habe ich, auf einem anderen server, die in den backports vorgehaltene Version dovecot 1.2 installiert:
# backports in sources.list eintragen
joe /etc/apt/sources.list
deb http://www.backports.org/debian lenny-backports main contrib non-free
# und der key dazu, sonst nervt apt-get bei jedem Aufruf
sudo wget -O - http://backports.org/debian/archive.key | sudo apt-key add -
sudo apt-get update
sudo apt-get -t lenny-backports install dovecot-common dovecot-pop3d dovecot-imapd
Weiter, nach Maßgabe des dovecot-Wiki, mit dem Script zur Migration der Daten in der version fuer dovecot 1.1+
cd /usr/local/bin
mkdir dovecot-mig
cd dovecot-mig/
wget http://www.dovecot.org/tools/courier-dovecot-migrate.pl
./courier-dovecot-migrate.pl --recursive --convert /home
# die Anpassungen der Konfig
joe /etc/dovecot/dovecot.conf
# managagesieve und lda bringen die Mailsortierung auf dem server zuwege
protocols = imap pop3 pop3s imaps managesieve lda
# sowohl auf IPv4 wie IPv6 lauschen
listen = *, [::]
# im default verbietet dovecot Klartext-Passworte, aber hier haette es manche Klienten ausgesperrt
disable_plaintext_auth = no
# chained cert doppelt eintragen
ssl_cert_file = /etc/ssl/certs/startssl/mail.domain.tld.pem
ssl_key_file = /etc/ssl/certs/startssl/mail.domain.tld.pem
# lda ist der local delivery agent und stoesst das sieben und reindizieren der mails bei Auslieferung an
protocol lda {
postmaster_address = master@server.domain
mail_plugins = sieve
}
# sieve_dir ist das Verzeichnis, in dem Filterscripte abgelegt werden. unter dovecot 1.2 ist deren Name beliebig
plugin {
sieve = ~/.dovecot.sieve
sieve_dir = ~/mails/sieve
}
Konfig speichern und dovecot neu starten
/etc/init.d/dovecot restart
Damit der lda deliver nun auch benutzt wird, muss er postfix bekannt gemacht werden:
joe /etc/postfix/main.cf
Auch hier gab es mit Thunderbird zuerst mal Messageboxen und Resynchronisierung, aber dann liessen sich zur Belohnung Filterregeln für's serverseitige Filtern aus Thunderbird heraus editieren und es ging auch.
dovecot 1.2 -> dovecot 2.0
den Anstoss für dieses Upgrade gab ein Blog-Artikel von Peter Kieser mit der Argumentation:
- push funktioniert auf IMAP, indem zwischen dem Client und dem Server die Verbindung IDLE offengehalten wird. Alle paar Minuten werden "OK Still here"-Nachrichten ausgetauscht.
- Wenn das geschieht, reaktiviert Android eine reihe ruhende Netzwerk-Funktionen und die ziehen Strom, je häufiger das geschieht, je mehr leidet die Batterielaufzeit.
- K-9 hat als default einen refresh alle 24 Minuten, dovecot aber alle 2 Minuten.
- mit dovecot 1.2 laesst sich daran per Config nichts ändern, Dovecot 2.0 hat dagegen einen Parameter imap_idle_notify_interval
Dovecot 2.0 gibt es für Lenny als Prebuilt Binary, Upgrading Dovecot v1.2 to v2.0 im dovecot-wiki hilft auch weiter.
Als erstes /etc/dovecot/dovecot.conf in ein backup sichern, so dass im weiteren nichts verloren geht, auch wenn man im install die dovecot.conf durch die neue Version ersetzen laesst!
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.1-2
joe /etc/apt/sources.list
# speichern, dann key besorgen
wget -O - http://xi.rename-it.nl/debian/archive.key | apt-key add -
apt-get update && apt-get upgrade
# die Konfigurationsdateien sehen für dovecot 2.0 einiges anders aus, die in dovecot 1.2 schon sehr umfangreiche dovecot.conf ist nun viel kuerzer und inkludiert stattdessen Konfigurationsdateien aus einem gesonderten Verzeichnis. Und optional eine local.conf, die ich mit diesen Einträgen angelegt habe:
mail_location = maildir:~/Maildir
Wenn der lda bei der Abarbeitung des sieve-scriptes einen Fehler feststellt, etwa wg eines Tippfehlers, einen Ordner nicht findet, schreibt er eine Fehlermeldung in ~/.dovecot.sieve.log
Zielkonflikt zwischen sieve und push-imap
Quasi als Schlussbemerkung hier, warum ich nach erfolgreicher Migration, upgrades, Konfiguration doch nicht ganz zufrieden wurde:
- sieve unterstuetzt nun serverseitig mein Mail-Ablage-Modell eines weitverzweigten hierarchischen Ordnerbaums mit deutlich > 100 systematisch/thematischen Ordnern. Ich kann von verschiedenen Orten (desktop, smartPhone, fremder Rechner) und MUA (ThunderBird, K-9, WebMail) darauf zugreifen und finde alles sortiert.
- imap-push zwischen dovecot (2.0) und k-9 funzt an sich auch wunderbar und mit dem auf 24//29 Minuten gestreckten Refresh-Interval auch halbwegs batterieschonend.
- Aber: imap-push hält je "push-aktivem" Ordner eine imap-idle - Verbindung offen. Ein anderes Model (nur eine Verbindung zwischen Client und Server bleibt idle offen, notify übergibt den Pfad zum aktualisierten Ordner) ist in der Mache, aber derzeit eben Zukunftsmusik. Das heisst konkret: mit 2, 3, 5 aktiven Ordnern ist alles bene, mit 127 hängt und klemmt es an allen Enden.
- mein Mail-Ablage-Modell dient dem Zweck, deduktiv/systematisch alte Mails wiederzufinden, imap-push dient dem Zweck, neue Mails sofort annonciert zu bekommen. Meine Wunschvorstellung war, dass k-9 und ThunderBird mir '''pling!''' sofort die neue Mail an ihrem systematischen Ort vor die Nase halten. Mit dem derzeitigen Stand der Protokolle geht das (bei vertretbarem Energieaufwand des smartPhone) aber nicht zusammen.
- meine Loesung ist dafür bis auf weiteres:
mobil: je ein account je Nutzung.- Ein Mail-account hält die hierarchische Ordnerliste, hier gibt es kein imap-push und keine regelmässige Synchronisierung, aktualisiert wird also nur bei Zugriff, und nur auf dem je gewünschten Pfad.
- Ein zweiter Mail-Account bekommt per .forward die selben neuen Mails zugestellt, alles unsortiert in die INBOX. Push macht sein Ding und das macht es gut. Wenn ich wirklich zu der neuen Mail den Kontext der vorigen brauche, kann ich ja auf dem anderen Konto nachsehen.
push mail und juice defender
Die beiden stehen sich schon im Weg, juice defender erzielt seine laufzeitverlängernden Wirkungen nicht zuletzt, indem es die Datenverbindung des smartPhone nur periodisch aktiviert. Mit den default-Einstellungen hatte es bei mir schon merklich was bewirkt, aber der push mail zuliebe habe ich es deaktiviert.
ThunderBird zeigt mit sieve in Unterordner einsortierte Mails nicht mehr zuverlaessig an
Eine neue mail ist von einem Filter nach dings/bums/gedöns sortiert worden: der Ordner wird fett dargestellt, in Klammern die Anzahl ungelesener Mails darin. Nie ein Problem mit thunderBirds eigenen Message Filtern. Aber nun, mit Sieve, bekomme ich die Anzeige oft erst, wenn ich den betreffenden Ordner mit der Maus anklicke, öffne. Google findet mir nur einen vergleichbaren Report, dort mit cyrus sieve.
Ganz am Ende des Threads der Hinweis 'I suppose you've already set Thunderbird to check for new mails in all IMAP subfolders? "Preferences->Advanced->Config Editor->mail.check_all_imap_folders_for_new"?'
Bei mir stand da false, nun in true geändert.
Scheint geholfen zu haben.
ThunderBirds Filterregeln in sieve-script übersetzen
Bei ausgedehnter Ordnerstruktur und entsprechend viel Filterregeln viel Arbeit, bislang vor mir hergeschoben. Sie stehen jeweils in ~/.icedove/$profileName/ImapMail/$accountName/msgFilterRules.dat Jetzt finde ich Regelübersetzer als Online-Dienst. Von der Art mag es noch mehr geben; man kann ihnen aber auch nicht unbesehen trauen. Der eine übersetzte in brauchbare Regeln, fügte aber nicht sichtbare Zeichen ein, die ich mit Suchen/Ersetzen in einem guten Editor bereinigen musste. Der andere schmiß gar gleich eine uncaught exception...
falsche Fehler
Friday, January 13. 2012
Daran kann man sich dusselig suchen: eine Anwendung gibt einen kryptischen, sehr spezifisch klingenden Fehler aus. Aber es ist im Grunde etwas ganz anderes...
VirtualBox ließ sich gerade bei mir überhaupt nicht mehr starten, Failed to create the VirtualBox COM object war die Msg und in den details stand: VirtualBox Error - Callee RC: NS_ERROR_FACTORY_NOT_REGISTERED (0x80040154)
Google liefert auf diese Fehlermeldung reichlich Hilferufe und Forenbeiträge, mit oder ohne "solved". Reichlich Gelegenheit, fruchtlos im System herumzuwerkeln - hier war das Problem nämlich schlicht: Festplatte absolut vollgeschrieben. Ein Backup-Laufwerk war nicht gemounted und so lief die kleine Systempartition voll.
Ein weiteres Symptom war: Google Chrome startete nicht (ohne jegliche Fehlermeldung)
Eine komplett vollgeschrieben Systempartition kann in der Folge weitere Überraschungen bewirken, apt-get etwa vermochte bei einem folgenden update nicht, fehlerfrei eine neue kernel-version zu installieren. Es sei nicht genügend Platz auf /tmp. und df listete /tmp als overflow und zu 100% belegt. siehe: /etc/init.d/mountoverflowtmp
Umlaute in Dateinamen bei 1&1
Monday, December 12. 2011
Das schöne an Standards ist ja, dass es soviele davon gibt... - also etwa Standards, wie die Umlaute des deutschen vercodete werden. Wer, wie ich, noch mit cp/m und 8.3-Dateinamen-Beschränkungen aufgewachsen ist, kommt vielleicht gar nicht auf die Idee, Umlaute in einen Dateinamen zu schreiben. Aber der Rest der Menschheit hat da weniger Skrupel.
Auf dem eigenen Rechner und binnen des gleichen OS/familie sieht alles ok aus und scheint zu klappen. Aber x-platform drohen die Bauchklatscher.
Eine Klientin hatte sich auf einer Seite ein Bildchen mit Hängematte eingefügt, und das Bild hiess auch genau so. Auf ihrem Windows - Laptop und mit ihrem GoLive schien das auch alles schön zu gehen, nur auf der www-Seite bei 1und1 war das Bild nicht zu sehen. Nachgeschaut per ftp und fireFtp zeigt den Umlaut in "Hängematte.jpg" auch klaglos im Listing der Dateien an. Aber jeder Versuch, die Datei zu loeschen, umzubenennen, zu verschieben scheitert mit 550, no such file.
1&1 stellt seinen homepage-Kunden ja noch ein Tool, den WebSite Explorer zur Verfügung. Darin nochmal versucht, der zeigt statt der Umlaute eine Raute mit Fragezeichen, rödelt eine Weile daran herum, aber dann gibt er sich "es ist ein Fehler aufgetreten" auch unverrichteter Dinge geschlagen. Nun schaden ein paar solche Dateileichen eigentllich nicht wirklich und stören in erster Linie nur meinen Ordnungssinn. Aber wenn der sich schon mal meldet...
Ok, so kriegt man die Dateileichen wieder weg: XP in einer vm starten, Netzwerklaufwerk verbinden, der Wizard fragt host (mit Protokoll eingeben!) und username ab, will noch das Passwort und öffnet das ftp-Verzeichnis brav als Unterordner der Netzwerkverbindungen im Windows Dateiexplorer. Hier werden die Dateinamen nun ohne den Umlaut dargestellt, also "Hngematte.jpg". Aber dieses schlechten Omens zum Trotz kann man hier die Dateien ohne Probleme ansprechen, wegmachen, was immer.
PHP Code in Typo3-Seite, die zweite
Monday, December 5. 2011
lib.field_irgendwas = PHP_SCRIPT_INT
lib.field_irgendwas.file = fileadmin/pfad/scriptname.php
CMS im Vergleich
Friday, December 2. 2011
Typo3:
Beispielseiten Firmenseite Homepage einer Schule
pro:
- wenn man differenzierte Rechteverwaltung am Backend braucht, bekommt man mit typo3 ein starkes Tool.
- update der Typo3-Sourcen geht in aller Regel schmerzlos und schnell
- die Möglichkeit, ein Template aus einem umsichtig aufgebauten .html abzuleiten ist ein großer Vorzug.
con:
- das Backend ist, namentlich wenn man sich eine weile damit nicht beschäftigt hat, schon etwas unintuitiv und zur Anpassung der Templates muss man sich in eine eigene Skriptsprache eindenken.
Joomla:
Beispielseiten Portal einer Initiative Kuschelpartys und Kuschelgruppen in Berlin
pro:
- nach der Installation tummelt man sich in einer auf den ersten blick sehr grossen Auswahl an kostenlosen Templates und Modulen
- Bearbeitungs- und Leserechte sind vielleicht nicht so differenziert wie in Typo3, aber doch schon recht vielfältig
- auch als Neuling bekommt man recht bald etwas lauffähiges mit umfangreichen Funktionen auf die Seite
con:
- sobald die Wünsche aber spezieller werden und über das verbreitete hinausgehen, ist das Angebot an Modulen etc. auf einmal gar nicht mehr so frei
- stattdessen muss man fuer laufende Gebühr Mitglied in einer Abennenten-Gruppe werden und das wird leicht zu einem Vendor-lockin der zweiten Art, denn Templates, Module, Plugins sind sehr versionsabhaengig und
- Versionsupgrade von joomla-Installationen ist nicht trivial. Ok, eine frage des Standpunktes, man könnte das auch zu den Vorzügen rechnen...
drupal:
Beispielseiten: Raumveränderung für Menschen in Veränderungsprozessen
pro:
- nicht so überladen wie joomla
- die Integration der Administrationsfunktionen in's frontend macht viele Bearbeitungsvorgänge viel schneller
- ausgehend von einem einfachen Beispieltemplate wie Zen ist man auch als Einstieger recht bald bei einem eigenen Template, was genau das macht, was man will...
con:
- die Rechtverwaltung ist allenfalls "einfach" zu nennen
upgrade auf eine neue Version des CMS und eingehendere Sichtung des Umfeldes an Erweiterungen stehen noch aus...
Tinnef a la Microsoft: winmail.dat
Friday, December 2. 2011
Man bekommt diese Attachments von Leuten, die ihre Mail mit outlook versenden, oben zwei Zeilen Text, dass alles wichtige in dem attachten 'Word.doc steht und dann kein lesbares attachment sondern eine Datei winmail.dat, mit der ausser dem Sender selbst niemand etwas anfangen kann.
Das Format ist ein Microsoft-Standard (Oxymoron?) mit dem treffend gewaehlten Namen tnef. So, zu meiner Freude kam ich jetzt mal darauf, dass debian eine Antwort darauf in den repositories hat:
apt-get install tnef
tnef -f winmail.dat -C Zielverzeichnis --unix-paths --verbose
klärt das Problem erstmal...
Alternativ kann man auch einen Webdienst dazu bemuehen, etwa bei tud.at, und sich die Dateien da auspacken lassen.
Dann gibt es für Thunderbird/Icedove das Addon LookOut, welches die Inhalte der winmail.dat wie zusätzliche attachments auflistet.
Den lieben Absender, der Outlook benutzt, sollte man bitten, seine Emails künftig nur noch im reinen Text Format zu versenden. Wie das geht, kann man bei Microsoft nachlesen.
Strukturierten Text -> Freemind
Friday, December 2. 2011
Ein voriger Beitrag behandelte Wege, eine Mindmap aus Xmind ins Freemind-Format zu bekommen, diesmal wollte ich einen strukturierten Text einlesen. Im Grunde eine Gliederung, bis auf die oberste Überschrift - den root node der Mindmap - beginnt jede Zeile mit (mindestens) einem Tab. Zeilen mit einem Tab sind Unterpunkte der obersten Überschrift, haben sie selbst auch Unterpunkte, stehen diese unter ihnen und die Unterpunkte haben alle einen Tab mehr als ihr Oberpunkt. Entsprechend weiter...
Das .mm - Format ist an sich sehr aehnlich, es ist ein XML, das binnen <map> </map> die Struktur als inneinander eingenistete <node /> abbildet. Ein node hat die Properties CREATED, MODIFIED, ID, TEXT und optional POSITION. Eigentlich wundert es mich, dass Freemind und seine Derivate (Freeplane zB.) keinen Import von Text direkt anbieten. Aber ich fand ein kleines Python-Tool, dass mir die Umwandlung erledigte: download
Was und wo speichert KDE4 eigentlich alles?
Tuesday, November 22. 2011
Und wie putze ich?
Also zuerst mal den Trash, wo der liegt, hatte ich in einem früheren Beitrag mal notiert. Dolphin hat den Mülleimer in der linken Spalte und nach Rechtsklick/Empty Trash ist das Verzeichnis auch wirklich leer. Was nicht heisst, das die Sachen da wirklich weg sind, wer low level die Festplatte untersucht, wird fast alles wiederfinden können.)
Ich hatte schon mal ein Programm KSweeper entdeckt und aus den debian-repositories installiert und laufen lassen, der Doku des Programmes entnahm ich einen Hinweis, der mich zu /var/tmp/kdecache-user führte. Ok, da gibt es div. Dateien und Unterordner, etwa http/. Sweeper laufen lassen (im Abschnitt Browser war alles angehakt), im Subdir http/ nachgeschaut und die tausende von Dateien dort sind weiter vorhanden. Hm, da ist wohl noch Platz für Verbesserungen...
Immerhin, mit dem Pfad an der Hand zu Google und zu einem längeren und recht gut strukturierten Dokument gelangt, aus Ubuntu - Sicht aber das tut ihm keinen Abbruch: Privacy Cleanup 101 Das ist eine Menge Lesestoff. Einem der Links dort folgend finde ich KScrubber. Das kann man als .deb herunterladen und mit sudo dpkg -i kscrubber_1.2.8-1_all.deb installieren, bei mir monierte es unerfuellt Abhaengigkeiten, die ein apt-get install -f dann loeste. KScrubber laeuft von der command line.
Da das Ziel zunaechst Forschung war, habe ich KScrubber mit sudo kscrubber --verbose --sim --clean|less im schwatzhaften Simulationsmodus gestartet, less hilft, die umfangreichen Ausgaben zu lesen.
(wird fortgesetzt)
KeepassX Konverter
Monday, November 21. 2011
download: convert2keepass.03a.tar.gz
Die Ausgangslage: auf einer kleinen verschlüsselten Partition halte ich eine seit vielen Jahren gehegte Sammlung von mehr oder weniger geheimen Infos, in vorwiegend kleinen Textdateien. Und diese wollte ich in eine Keepass - Datenbank überführen. Bei zusammen doch mehreren hundert Schnipseln war Handarbeit keine Option.
Die Zielanwendung ist KeepassX (v.0.43), das ich mit sudo apt-get install keepassx aus den Debian repositories installiert habe. Bis auf das Schnuller-Logo, das leider auch als Icon verwandt wird, habe ich an der Anwendung wenig auszusetzen: klein, flottt, unaufdringliche Oberfläche und es gibt sie in Versionen für alle Betriebssysteme und Architekturen, die ich habe. Ich kann die unter Linux erstellte Datenbank auf Windows, auf dem Mac, ja auch auf meinem Androiden öffnen, ergänzen, die veränderte .kdb vom Handy wieder auf Linux zurückspielen, die Sicherheitsfeatures machen auch einen guten Eindruck.
KeepassX kann Daten exportieren - als gegliederte Textdatei oder als keepassx.xml - und importieren - keepassx.xml, kwallet.xml und PwManager-Datei. Da nur ein Format sowohl für Export als auch Import zur Verfügung steht, war nicht lange zu überlegen, welches Format ich für einen Konverter wählen würde.
Es ist ein kleines Bash-Script geworden, das mit den Parametern QuellVerzeichnis zielVerzeichnis ZieldateiName aufgerufen wird und dann vom 'Quellverzeichnis abwärts durch alle Unterverzeichnisse alle Dateien sucht und einträgt. Dabei wird der Titel des Eintrags aus dem Namen der Textdatei (ohne Extension) gebildet und der Inhalt der Datei wird in das Feld Comment geschrieben.
Das Ergebnis ist dann eine lange xml-Datei, die mit der Import-Funktion als eine Keepassx-db geladen werden kann. Die Sache ist frisch und Alpha, derzeit kann es
- prüft auf taugliche Parameter, Schreibrechte im ZielVerzeichnis
- rekursive Bearbeitung, die Struktur in der Keepass-DB entspricht der Verzeichnisstruktur
- prüft mimeType der Dateien und bearbeitet nur text* und message*
- ruft dazu file
- Texte, die von MacOS <10 stammen, machen uU Probleme
- ersetzt die für XML unverträglichen Zeichen &<>"' und Zeilenenden durch html entities
- gibt Statistik über bearbeitete Dateien und Verzeichnisse aus
- schreibt für keepassX importierbares .xml und nennt dessen Dateipfad.
Um die damit erzeugten Datenbankeinträge nicht als eigene .kdb zu importieren, sondern mit einer bereits bestehenden zu vereinen, muss man dann doch Hand anlegen: die bestehende kdb als .xml exportieren, die beiden xml in einem Editor zusammensetzen und neu importieren. Grade gemacht, funzt.
gtk-Anwendungen sehen in KDE so hässlich aus...
Thursday, November 17. 2011
und das kann doch nicht nur mich stören... Also wie bekomme ich Anwendungen aus dem Gnome-Reich wie Synaptics oder KompoZer oder die Mozillas dazu, mehr wie native KDE-Anwendungen auszusehen?
Google zeigte mir unter anderem diese hilfreiche Seite, wenn auch nicht alle der da erwähnten Pakete auffindbar waren, und bei mir auch nicht alles so funktionierte...
Der beste Tip war, kde-config-gtk-style zu installieren, dass dann als GTK Styles and Fonts in System Settings / Look & Feel / Appearance ein Control einbindet, mit dem der Style, den GTK-Anwendungen benutzen, bestimmt und veraendert werden kann. qtcurve habe ich auch installiert und finde es, na sagen wir mal, "schon besser".
Was mir aber Probleme machte und zerbrochen scheint ist gtk-qt-engine. Ich bin nicht ganz sicher, aber es mag auch eine Nebenwirkung dessen sein, was der (ebenfalls von diesem control angebotene) Button "Install-scrollbar fix..." anrichtet. Jedenfalls fand ich auf einmal die Scrollbars in Icedove und Iceweasel gan z unbenutzbar - im Hover wird der Scrollbar als ein grosses graues Rechteck gezeichnet, anliegende Buttons werden auch überdeckt und es geht einfach gar nicht. Schlimmer noch: Icedove laesst sich nicht mehr richtig beenden, der Process bleibt im Hintergruind aktiv, frisst 100% CPU und geht erst mit einem ausdruecklichen kill.
Ich habe etwas suchen müssen, bis ich eine Beschreibung fand, was "Install scrollbar fix..." eigentlich macht, ein Forscher fand:
I decided to go ahead and try it and it said it had done something in my Mozilla profile.
I checked there and as far as I can tell for now, it added the following in userChrome.css
and userContent.css in the Firefox default profile
# The following four lines were added by KDE
scrollbarbutton[sbattr="scrollbar-up-top"] { display: -moz-box !important; }
scrollbarbutton[sbattr="scrollbar-down-top"] { display: none !important; }
scrollbarbutton[sbattr="scrollbar-up-bottom"] { display: none !important; }
scrollbarbutton[sbattr="scrollbar-down-bottom"] { display: -moz-box !important; }
Manuelles auskommentieren dieser Zeilen heilte aber nichts, apt-get remove gtk-qt-engine und die Auswahl eines der Styles unter "Use another style" war die einzige für mich gangbare Lösung. QtCurve, Glossy, ClearLooks - ymmv.
Das muß noch nicht der letzte Stand sein, hier sind alternative Vorschläge:
Aktuelle Mozillas auf Debian Squeeze
Thursday, November 10. 2011
Klar, es ist ein Marketing-Tick; Google hat bei Chrome damit angefangen, jedes Versönchen mit einem glatten Versionssprung auszuzeichnen und nun machen es die anderen Broswerbauer eben nach. Aber es irritiert doch, immer noch mit Iceweasel 3.x unterwegs zu sein, wenn schon Version 8 herausgekommen ist.
Nun stiess ich darauf, dass es ein Debian Mozilla Team gibt, das Iceweasel und Icedove / Thunderbird in aktuellen Versionen als Backport bereitstellt. Die Seite ist an sich selbsterklärend, debian-Version einstellen, Programm und Version auswaehlen, und die dynamisch angepassten Zeilen kopieren und in /etc/apt/sources.list einpasten. Key importieren und dann mit einem ebenfalls dynamisch angepassten cmd installieren.
Mit Iceweasel klappt das auch anstandslos und nun zeigt mir About eine 8.0. fein!
Aber dann stach mich der Hafer und ich wollte es auch mit dem Icedove / Thunderbird probieren. Stable (Squeeze), Icedove, release ausgewählt, eingetragen, apt-get update und den install gestartet. Zuerst sah's auch gut aus, eine neue Version wurde installiert, laut about 5.0, kaute beim ersten Start lange auf den zugehörigen add-ons herum und knipste mir dann alle Kalender-bezogenen add-ons, Iceowl (Lightning) wie auch den Provider for google Calendar und die Timezone definitions aus.
Und alle Versuche, für iceowl-extension einen backport oder ein installierbares .xpi zu finden, misslangen. Google fand mir nur den Stoss-Seufzer eines Leidensgefährten "please backport iceowl-extension, calendar-google-provider & l10n packages" Yo, ohne den Kalender geht es fuer mich einfach gar nicht - wieso ist der eigentlich nicht längst in Thunderbird integriert statt bei jedem Upgrade immer eine Zitterpartie zu provozieren?
Rollback der Aktion war zum Glueck einfach und schmerzlos:
die Zeile fuer icedove backport aus der sources.list wieder auskommentieren,
apt-get update
apt-get remove icedove
apt-get install icedove iceowl-extension
und alles war wieder beim alten. Einen Vorzug hatte die ganze Aktion aber doch, ich entdeckte das add-on FireTray, das im systray die Anzahl eingetroffener Mails anzeigt. Auch hier hat man es mit Versionitis zu tun, deshalb hier gleich der Hinweis auf die Versionsgeschichte. Nach einigen Versuchen hatte ich dann mit Version 0.3.2 eine Fassung, die sich nicht nur installieren liess sondern dann auch noch wie erwartet funktionierte.
FireTray ist recht gut konfigurierbar, insbesondere erlaubt es, für das tray-Icon zwei verschieden Icons einzutragen, eines wird gezeigt, wenn keine ungelesenen Mails angezeigt werden und das andere, wenn es ungelesene Mails gibt, deren Anzahl wird in auswaehlbarer Farbe darauf gezeichnet. Als default steht hier ein grauer Kasten, der nicht sehr attraktiv war und den ich gleich mit einer anderen Grafik austauschen wollte. Nichts passenderes zur Hand versuchte ich es it einem recht grossen Bild, das Firetray klaglos akzeptierte und sofort, auf IconGröße skalierte, verwandte. Aber nun war die numerische Ausgabe der ungelesenen Mails nicht mehr da. den Pfad zum eigenen Image löschen, und die Anzeige war wieder da. Etwas googeln auf "firetray custom mail notification icon" fand mir auch einen Issue-report, der meiner Situation zu entsprechen schien. Um nicht nur einfach "me too" an den thread dranzuschreiben habe ich ein wenig mit der Funktion gespielt, mein erster Verdacht war ja, dass das custom Icon über die Anzeige gezeichnet würde, deshalb nahm ich ein fast-transparentes Quadrat als Icon. und da stand die Anzahl dann, nur ziemlich kein. Firetray macht ja einen guten Job beim Skalieren eines beliebig grossen Images auf die passende größe, offenbar wird aber die anzahl vor dem Skalieren gezeichnet und wird so uU winzig klein. Wenn man das erst einmal erkannt hat, ist es aber eher ein feature denn ein bug, denn so kann man die Textgröße stufenlos festlegen. Ich habe bei Grafiken zwischen 80x80 und 40x40 auf meinem bildschirm angemessene Größen gefunden.
Blinkaugen bei 1&1
Saturday, November 5. 2011
Im Kundenauftrag bei 1&1 unterwegs und aua! ist das ein Gewimmel von Zusatzangeboten, Irrwegen, und mehr! Der Webauftritt der Kundin sollte WebAnalytics und ein blog bekommen, beides leuchtet als Option im Controlcenter ihres Homepage-Paketes. Naja, geschenkte Gäule. Die Webanalytics sind ein glorifiziertes Awstats und sehen maximal 3 Monate zurueck. Und das Blog ist eine shared Wordpress Installation mit sehr reduzierter Konfigurationsbreite: man kann aus einer Latte Templates auswählen (aber nichts daran ändern) und man kann eine handvoll vorgegebener Plugins aktivieren (aber keine eigenen/anderen einsetzen). Dafür hat das Blog dann lauter Links zu 1&1 und das Ärgerlichste ist: es ist keine Option zum Export des Blogs vorgesehen. Wenn der Kunde irgendwann die Nase voll hat von 1&1 und weg will, kann er sich die Blog-Einträge mit Copy&Paste rüberziehen, einfach super.
Nun, also doch wie ursprünglich geplant Piwik für die WebAnalytics und Serendipity für's Blog. Auch das macht nicht so richtig spass bie 1&1 denn man bekommt keine error_log zu sehen. Und das heisst, wenn mal was nicht so flutscht wie es soll: Rummachen im Blindflug, uuähh!
Serendipity funzte schliesslich mit einer .htaccess wie dieser (ohne die beiden ersten Zeilen gab es bei event_plugins nur Fehlermeldungen!)
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
ErrorDocument 404 /index.php
DirectoryIndex /index.php
RewriteEngine On
RewriteBase /
RewriteRule ^serendipity_admin.php serendipity_admin.php [NC,L,QSA]
RewriteRule ^((archives/([0-9]+)-[0-9a-z\.\_!;,\+\-%]+\.html)/?) index.php?/$1 [NC,L,QSA]
RewriteRule ^(authors/([0-9]+)-[0-9a-z\.\_!;,\+\-%]+) index.php?/$1 [NC,L,QSA]
RewriteRule ^(feeds/categories/([0-9;]+)-[0-9a-z\.\_!;,\+\-%]+\.rss) index.php?/$1 [NC,L,QSA]
RewriteRule ^(feeds/authors/([0-9]+)-[0-9a-z\.\_!;,\+\-%]+\.rss) index.php?/$1 [NC,L,QSA]
RewriteRule ^(categories/([0-9;]+)-[0-9a-z\.\_!;,\+\-%]+) index.php?/$1 [NC,L,QSA]
RewriteRule ^archives([/A-Za-z0-9]+)\.html index.php?url=/archives/$1.html [NC,L,QSA]
RewriteRule ^([0-9]+)[_\-][0-9a-z_\-]*\.html index.php?url=$1-article.html [L,NC,QSA]
RewriteRule ^feeds/(.*) index.php?url=/feeds/$1 [L,QSA]
RewriteRule ^unsubscribe/(.*)/([0-9]+) index.php?url=/unsubscribe/$1/$2 [L,QSA]
RewriteRule ^approve/(.*)/(.*)/([0-9]+) index.php?url=approve/$1/$2/$3 [L,QSA]
RewriteRule ^delete/(.*)/(.*)/([0-9]+) index.php?url=delete/$1/$2/$3 [L,QSA]
RewriteRule ^(admin|entries)(/.+)? index.php?url=admin/ [L,QSA]
RewriteRule ^archive/? index.php?url=/archive [L,QSA]
RewriteRule ^(index|atom[0-9]*|rss|b2rss|b2rdf).(rss|rdf|rss2|xml) rss.php?file=$1&ext=$2
RewriteRule ^(plugin|plugin)/(.*) index.php?url=$1/$2 [L,QSA]
RewriteRule ^search/(.*) index.php?url=/search/$1 [L,QSA]
RewriteRule ^comments/(.*) index.php?url=/comments/$1 [L,QSA]
RewriteRule ^(serendipity\.css|serendipity_admin\.css)$ index.php?url=/$1 [L,QSA]
RewriteRule ^index\.(html?|php.+) index.php?url=index.html [L,QSA]
RewriteRule ^htmlarea/(.*) htmlarea/$1 [L,QSA]
RewriteRule (.*\.html?) index.php?url=/$1 [L,QSA]
<Files *.tpl.php>
deny from all
</Files>
<Files *.tpl>
deny from all
</Files>
<Files *.sql>
deny from all
</Files>
<Files *.inc.php>
deny from all
</Files>
<Files *.db>
deny from all
</Files>
device-mapper und Google Chrome
Wednesday, October 26. 2011
Ein seltsamer Effekt ist neuerdings aufgefallen, beim Einbinden der dm-crypt - devices liest sich das so:
cryptsetup luksOpen /dev/sdc silva
Geben Sie den Passsatz für /dev/sdc ein:
semid 131072: semop failed for cookie 0xd4df6e3: incorrect semaphore state
Failed to set a proper state for notification semaphore identified by cookie value 223213283 (0xd4df6e3) to initialize waiting for incoming notifications.
Grub anpassen, spacefun loswerden
Monday, October 24. 2011
Hier läuft Grub 2, Paket grub-pc, und anlässlich einer recht boot-freudigen Phase von Installationen nervten ein paar Eigenheiten des Boot genug, um mich zur Änderung zu treiben. Ärgernisse:
- mit usb-Tastatur ist das Boot-Menü des Grub nicht bedienbar
- nach dem grafischen Boot-Menü fällt Grub für die folgenden Meldungen in einen Textmodus zurück (gewünscht), und verwendet zur Ausgabe eine absurd grosse Schrift, so dass die Ausgaben mehrfach umgebrochen über den Schirm huschend kaum lesbar sind
- eigentlich mag ich die vorgegebene Grafik nicht und möchte das komplette spacefun theme des Debian Squeeze gerne verbannen.
Punkt eins ist wohl ein Timing-Problem, probehalber im Bios den schnellen Boot disabled und seither geht's.
Die Formatierung der Bootmeldungen und eine eigene Hintergrundgrafik kann man in /etc/default/grub und /etc/grub.d/00_header beeinflussen.
/etc/default/grub:
GRUB_GFXMODE=1280x1024x24
GRUB_BACKGROUND="/pfad/zu/beliebigem/Verzeichnis/und/Bild.png"
Der Eintrag in GRUB_GFXMODE muss natuerlich zu den Fähigkeiten der Grafik passen, eine Liste möglicher Modi gibt's nach:
apt-get install hwinfo
hwinfo --framebuffer
In /etc/grub.d/00_header ergänzt man (bei mir auf Zeile #127) nach
set gfxmode=${GRUB_GFXMODE} die Zeile
set gfxpayload=keep
Anschliessend update-grub. Es ist übrigens ratsam, zuvor ein Backup der Einträge in /etc/grub.d zu machen, denn wenn man versehentlich einen Fehler in die editierte Datei bringt (keine Ahnung, was da passiert war) dann moniert grub-mkconfig den Fehler in wenig hilfreicher Art. (fehlerhafte Dateien werden wie nicht vorhanden behandelt und man kratzt sich am Kopf, weshalb eine offenbar anwesende Datei NOT FOUND sei.)
Wenn man space-fun auch vom Login-Screen verbannen will, hilft /etc/default/kdm.d/10_desktop-base
Für den Login kann man da ein eigenes Bild einsetzen, aber danach folgt eine Ladeanimation (ksplash) und der den spacefun abzugewöhnen war nicht ganz leicht.
Eine Suche auf "debian kde spacefun" liefert in vielen Varianten einen Thread "KDE4 , Squeeze: Space fun background keeps appearing under kde login splash" mit vielen Ansätzen, was man versuchen könnte. Aber keiner wirkte. Weder liess sich ein anderer Splash einstellen, ein neuer installieren oder sonst irgendwas bewegen, die erste irgendwie wirksame Massnahme war, testweise in /usr/share/kde4/apps/ksplash/Themes spacefun in spacefun-weg umzunennen: nun bekam ich statt des Splash ein weisses Rechteck auf Schwarz. Und so richtig elegant ist solche Wurschtelei ja auch nicht gerade...
Endlich fand ich die nirgends erwähnte entscheidende Referenz auf den spacefun in
~/.kde/share/config/startupconfig (das wirkte mit KDE 4.4)
Dort ein anderes Theme setzen, dass in /usr/share/kde4/apps/ksplash/Themes vorhanden ist, und dann geht's doch.
In KDE 4.6 war es dann wieder anders, hier liess sich alles aus den System Settings einstellen, wenn man sich System settings als Root eingerichtet hat. Das geht fix mit dem KDE MEnue editor, man kopiert den Eintrag der System settings, gibt ihm einen etwas anderen Namen und stellt unter Advanced / Run with a different user root ein. Das theme fuer den LoginScreen steht unter /usr/share/kde4/apps/kdm/themes, kann man sich leicht selbst erstellen aus der Kopie eines schon vorhandenen.
Squeeze mit aktuellerem Kernel
Monday, October 24. 2011
Anstoss der Unrast sind die heftigen Performance-Einbrüche meines Rechners während der regelmässigen incrementiellen Backups auf eine externe USB-Festplatte. Die ist wirklich nicht besonders schnell, hdparm -t ermittelt 30 MB in 3.09 seconds = 9.72 MB/sec. Mein HTC Desire ist da mit bis zu 14 MB/sec merklich schneller.
Das das Backup relativ langsam geschrieben wird ist aber an sich gar kein Problem. Wirklich nervend ist, dass die CPU sich dabei mit 80, 90% wait states eindeckt und kaum noch etwas anderes erledigen mag als, auf die lahme Platte zu warten. Auf der Suche nach möglichen Auswegen stiess ich auf Hinweise, dass Linux ab 2.6.37 mit solchen Situationen besser umgehen könne. Squeeze hat 2.6.32. Einen Versuch wär's wert.
Woher einen aktuelleren Kernel nehmen? Backports (hilfreich bei der Auswahl von Paketen), und eine schon brauchbare Anleitung für die konkreten Schritte fand sich auch bald, brauchte aber dann doch noch ein paar Änderungen und Ergänzungen.
- es schadet nicht, ein aktuelles Backup von /boot und /etc zu haben...
- nano /etc/apt/sources.list
- dort unten diesen Eintrag anfügen:
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
- apt-get update
- und jetzt installieren:
apt-get install -t squeeze-backports linux-image-2.6-amd64
Der install macht auch ein update der Grub-Konfiguration und fügt für den neuen Kernel oben auf der Liste zwei Einträge ein. Wenn nicht alles so geht, wie man gehofft hat, kann man im Grub-Menü nach unten wandern und den bisherigen Kernel booten, das ist die dritte Zeile im Menü.
Klappte soweit ganz gut, ein paar Sachen waren aber zu erledigen. So kam beim Install ein Hinweis auf fehlende (non-free) Firmware, die für diesen Rechner mit
apt-get install -t squeeze-backports firmware-realtek
kam. Weiter monierte der install schon:
dkms: running auto installation service for kernel 2.6.39-bpo.2-amd64:
vboxhost (4.1.4)...failed.
nvidia (195.36.31)...failed.
dkms: WARNING: linux headers are missing, which may explain the above failures.
please install the linux-headers-2.6.39-bpo.2-amd64 package to fix this.
Wirklich landete ich nach dem ersten boot des neuen Kernels auf der Konsole, mangels Grafiktreiber. Google fand mir diese Anleitung, NVidia-Treiber auf dem backported Kernel zu nutzen. In der bash_history hat dieser Schritt solche Spur hinterlassen (das shell script nvidia_heilen.sh entspricht dem auf obiger seite gelistetem)
dpkg-reconfigure nvidia-kernel-dkms
grep -ie error /var/lib/dkms/nvidia/195.36.31/build/make.log
cd /usr/local/src
mkdir backportkernel
cd backportkernel/
nano nvidia_heilen.sh
chmod 755 nvidia_heilen.sh
./nvidia_heilen.sh
apt-get install -y nvidia-glx
apt-get install -y nvidia-glx-ia32
apt-get install -y nvidia-xconfig nvidia-settings
reboot
Nun lande ich wieder auf dem grafischen Desktop und nicht nur der nvidia-Treiber sondern auch der ebenfalls monierte vboxhost sind geheilt. Bleibt vmware. Hier die hilfreiche Webseite (leider ist sie jetzt, beim schreiben dieser Zeilen, nicht verfügbar). Infos und Beschreibung treffen, aber bei mir klappte es auch mit dem Patch nicht. Letztlich half der Link zu den gepatchten Sourcen. Der Vmware-Player (3) baute sich seine Module, die liefen aber erst nach einem reboot.
Fein, damit war das Update gelungen - hat es auch was gebracht? Sieht recht gut aus, top zeigt die wa während der rsync-Läufe zwischen 25 und 30%. Und gefühlt ist das Problem damit bereinigt.
Update:
Für die Aktion etwas zu spät stieß ich auf smxi/sgfxi/svmi, eine Familie von Scripten, die sich ganz dem Kernel-Update und der Kompilierung von Grafik Modulen und Modulen für vmbox und vmware widmen und die Sache um einiges leichter machen...