Qmail weirdness

Endlich habe ich maildrop durch deliver von Dovecot ausgetauscht. Das hat eine ganze Reihe Vorteile:

  • Dank des Quota Plugins kann ich nun die Quota Daten aus dem LDAP verwerten.
  • Durch geringfügige Umstellung des Filter Generators kann ich das Sieve Filter Plugin von Dovecot verwenden.
  • Mails werden schon bei Einlieferung indiziert und gecached. Vorher geschah das erst beim Zugriff auf die Mailbox.

Aber ich muss zugeben, die Qmail Einlieferung sieht schon ein bischen merkwürdig aus:

#!/bin/sh

/var/qmail/bin/preline -f cat /dev/stdin | \
    /usr/bin/spamc -u bayes | \
    /opt/bin/clamassassin  | \
    /opt/libexec/dovecot/deliver

exit $?

KB948110 läßt sich nicht installieren

Klappt nicht, wenn die ADMT Tools installiert sind.

  • SQLWMSDE-KB948110-x86-DEU.exe von MS runterladen
  • Den Dienst MSSQL$MS_ADMT anhalten
  • Backup von %windir%\ADMT\MSSQL$MS_ADMT machen
  • SQLWMSDE-KB948110-x86-DEU.exe /upgradesp sqlrun INSTANCENAME=MS_ADMT /l*v %windir%\WMSDE.log
  • Den Dienst MSSQL$MS_ADMT starten.

WLAN von Ralink

Linux und WLAN, das ist ein ewiges Thema… Die Hersteller dürfen ihre Blobs immer noch nicht offen legen, da hat sich nichts geändert. Stichwort: Länder und militärisch genutzte Frequenzbereiche. Aber auch schon beim Treiber hat man es schwer. Der Atheros Chip im Macbook ist zur Zeit ein Alptraum.

Nun hatte ich das Kabellegen satt und bestellte mir bei meiner letzten Buchbestellung noch eine Hama Wireless LAN PCI-Karte bei Amazon. Bei dem CHIP handelt es sich um einen RT61 von Ralink. Der Treiber ist im Debian Kernel enthalten und die Firmware bekommt man über aptitude. Da kann ich nicht klagen.

 

GnuPG, mutt und der gpg-agent

Du hast GnuPG auf Version 2 aktualisiert und siehst jetzt folgendes beim Signieren von Mails:
can't connect to `$HOME/.gnupg/S.gpg-agent': No such file or directory

Du erweiterst die pgp Befehle in Deiner .muttrc mit –no-use-agent und siehst:
gpg: WARNING: "–no-use-agent" is an obsolete option – it has no effect

Du schaust in die man-page und suchst nach –no-use-agent. Du findest:
This is dummy option. gpg2 always requires the agent.

Ok! Ok! Ich versuchs…

  1. Man muss sicherstellen, dass der gpg-agent läuft. Dafür bietet sich die .xsession an. Fluxbox User können die Datei $HOME/.fluxbox/startup erweitern. Ich habe meine .bash_profile modifiziert, damit es auch auf Systemen ohne X klappt. Jetzt funktioniert das Signieren wieder…
    1. .bash_profile:
      which gpg-agent >/dev/null
      if [ "x$?" = "x0" ]; then
          GPG_AGENT_FILE="$HOME/.gpg-agent-info"

          source $GPG_AGENT_FILE > /dev/null
          GPG_AGENT_SOCK=$(echo $GPG_AGENT_INFO | sed -e "s/:.*//")
         
          if [ ! -S $GPG_AGENT_SOCK ]; then
              gpg-agent –daemon –write-env-file $GPG_AGENT_FILE 1>/dev/null
              source $GPG_AGENT_FILE
          fi
         
          export GPG_AGENT_INFO
      fi

  2. Nun fragt mutt jedes Mal nach der Passphrase, wenn es neu gestartet wird. Ich dachte, der Agent ist dazu da, damit das nicht passiert:
    1. pinentry installieren.
    2. set pgp_use_gpg_agent = yes in die .muttrc schreiben.
    3. Alle –passphrase-fd 0 aus der .muttrc entfernen.
  3. Jetzt möchte man vermutlich noch pinentry-program /usr/bin/pinentry-curses in seine $HOME/.gnupg/gpg-agent.conf reinschreiben, damit keine GTK/QT Anwendung das mutt Look&Feel zerstört. ";-)"

gcc Optimierung == FUBAR

Ich könnte jetzt darüber schreiben, wie man mit direkten MSDE SQL Befehlen die Zugangsberechtigung für den Business Contact Manager nach einer Domänen Migration wieder gerade biegt. Oder wie man die NTUSERS.DAT in regedit lädt. Oder wie man mit den Kommandozeilen Tools eseutil und isinteg eine Exchange Datenbank repariert. ABER es ist Wochenende. 

Auf der Suche nach einem Bug in einem meiner Projekte, bin ich nun tatsächlich auch mal auf ein gcc Phänomen gestossen. Nachdem ich keine Fehler in der Logik erkennen konnte, habe ich mit dem gcc experimentiert:

  • -O2: Eine Funktion liefert Unsinn zurück. Das wird abgefangen, wodurch eine verkettete Liste aber nur mit 1/s durchlaufen wird.
  • -O3: Alles funktioniert, wie ich mir das vorgestellt habe.
  • -O1: Alles funktioniert, aber die Ergebnisstrings bleiben leer.
  • -Os: Segmentation fault…

Faszinierend.