Mein openSUSE BuildService

openSUSE Seit ein paar Jahren packe ich jetzt schon RPM Pakete für SUSE Linux bzw. mittlerweile openSUSE.

Da das immer eine ziemlich zeitaufwändige und rechenintensive Arbeit ist, habe ich mich beim openSUSE BuildService angemeldet. Ich habe nur noch eine lokale VMware, in der ich die Pakete erstelle und teste. Dann kann ich sie per OSC zum BuildService hochladen und dort werden sie auf allen ausgewählten Architekturen gebaut. Noch besser ist, dass automatisch Repositories für alle Distributionen erstellt werdeb, die man direkt in YaST integrieren kann.

Mein Fazit: Super Sache! Ich bin begeistert.

Nervende arp-Meldungen

FreeBSD Seit einiger Zeit nervten mich auf etlichen Servern, die ich bei Hetzner betreue, Meldungen wie:

arplookup 88.XXX.XXX.XXX failed: host is not on local network

Diese tauchten jeden Tag in den Statuslogs der Server auf und machten das morgendliche E-Mail-Lesen zur Qual.

Nun habe ich endlich einmal die Zeit gefunden, diesen Meldungen auf den Grund zu gehen. Google liefert etliche Tips, doch einfach den Kernel zu patchen und die Meldungen auf diese Weise loszuwerden – nicht mein Stil, die Meldungen haben ja eigentlich einen Sinn. Also bin ich irgendwann auf folgende Lösung gestoßen.

Man trägt eine statische Route in /etc/rc.conf ein, die die IP-Adresse auf das entsprechende Interface zuweist:

static_routes="gw"
route_gw="-host 88.XXX.XXX.XXX -interface re0"

Ein Aufruf von netstat liefert dann das den neuen Eintrag

Internet:
Destination Gateway Flags Refs Use Netif Expire
...
88.XXX.XXX.XXX 00:02:85:XX:XX:XX UHLS 1 0 re0
...

Leider mit der MAC-Adresse der lokalen Netzwerkkarte – was zwar die arplookup-Meldungen verschwinden lässt, dafür aber eine neue ständige Fehlermeldung hervorruft, die mindestens genauso nervt.

arp: 00:02:86:XX:XX:XX attempts to modify permanent entry for 88.XXX.XXX.XXX on re0

Doch diese Meldung kann mit dem Tool arp abgefschafft werden.

Diese trägt man in die ARP-Tabelle ein. Ich habe das, um es gleich statisch zu haben, in die Datei /etc/arptab geschrieben. Man schreibt einfach die IP-Adresse gefolgt von der korrekten MAC-Adresse:

88.XXX.XXX.XXX 00:02:86:XX:XX:XX

Jetzt muss das ganze noch aktiviert werden. Das geschieht mit dem Befehl:

/usr/sbin/arp -f /etc/arptab

Diesen Befehl kann man einfach in die Datei /etc/rc.local schreiben um die Änderung der ARP-Tabelle bei jedem Neustart verfügbar zu machen.

FreeBSD: SNMP im Jail

FreeBSD Nachdem ich eine ganze Weile versucht habe, den Net-SNMP unter FreeBSD in einem Jail zu betreiben, war die Lösung doch recht einfach. Im Jail kann auf /dev/mem nicht zugegriffen werden, also deaktiviert man die entsprechenden Module mit einem Eintrag in /etc/make.conf:

.if ${.CURDIR:M/basejail/usr/ports/net-mgmt/net-snmp}
CONFIGURE_ARGS=--with-out-mib-modules="host" --without-kmem-usage
.endif

MediaWiki-Ports für 1.3.x und 1.4.x laufen aus

MediaWiki Mit dem Erscheinen des 1.7-Zweiges von MediaWiki stellt die MediaWiki Foundation die Unterstützung des 1.4er-Zweiges ein. Der 1.3er-Zweig wurde schon länger nicht mehr gepflegt, so daß ich die Ports für diese beiden Zweige ebenfalls nicht mehr unterstützen werde. Sie laufen am 1. September (MediaWiki 1.3.x) und am 1. Oktober (MediaWiki 1.4.x) 2006 aus.

Als Alternative solle der aktuelle 1.7er-Zweig verwendet werden oder für PHP 4.x Installationen der 1.6er-Zweig.

Links:
MediaWiki Projektseite
PR: Deprecated Port: www/mediawiki13
PR: Deprecated Port: www/mediawiki14

MediaWiki 1.7.1 und 1.6.8

MediaWiki Nachdem am 7.7. die Version 1.7.0 des MediaWiki veröffentlicht wurde, kam am folgenden Tag mit der Version 1.7.1 gleich ein Bug Fix Release – das mit der Version 1.6.8 auch für den 1.6-Zweig verfügbar ist.

Ein neuer Zweig bedeutet Arbeit mit meinem FreeBSD-Port – die Versionen des 1.6-Zweiges sind ab sofort unter www/mediawiki16 verfügbar, während die aus dem 1.7-Zweig wie üblich über www/mediawiki installiert werden können.
Da sich einiges geändert hat, empfiehlt es sich für die Updatewilligen die Seite Upgrading to 1.7 zu lesen.

Die PostgreSQL-Unterstützung ist anscheinend noch nicht wieder zurückgekehrt, weshalb ich die entsprechenden Optionen vollständig aus dem Port entfernt habe. MediaWiki 1.7 bietet auch keine Unterstützung mehr für PHP 4 und MySQL 3.23 – ein Entscheidung die konsequent und nur zu begrüßen ist.

Links:
MediaWiki Projektseite
Release Notes zur Version 1.7
PR: Repocopy and Update: MediaWiki 1.6.8
PR: Update: MediaWiki 1.7.1

Zusätzliche Schriften unter X11

Wer ein paar Schriftarten für X11 installieren will, aber keine root-Rechte auf einem System hat, kann sich wie folgt behelfen.

Im Home-Verzeichnis legt man das Verzeichnis .fonts an und kopiert die Schriftarten dorthin. Anschließend läßt man ein fc-cache laufen, um die Meta-Informationen der Schriftarten zu generieren.

Zu guter Letzt muß man den neuen Schriftartenpfad noch dem X11-Server bekanntmachen. Das geschieht auf diese Weise:

Mit xset fp+ ~/.fonts macht man das Verzeichnis als Font Path bekannt und mit einem anschließenden Aufruf von xset fp rehash sagt man dem X11-Server er soll seine Informationen über Verzeichnisse, in denen Schriftarten installiert sind, aktualisieren.

Manche Programme, wie der Acrobat Reader müssen danach aber neu gestartet werden, um die neuen Schriftarten nutzen zu können. Die Prozedur klappt auf jeden Fall unter SuSE Linux und FreeBSD, und sollte auch unter allen anderen Systemen mit X11 funktionieren.

Server down… up… down… up…

Normalerweise lese ich beim Frühstück immer meine E-Mails. Das musste heute ausfallen, ebenso wie das Frühstück an sich. Der Grund: Mein Server bei Hetzner war nicht mehr erreichbar!

Nun habe ich den ja zum 30.06. gekündigt, weil ich ihn nicht mehr brauche, allerdings wollte ich an diesem Wochenende die Daten archivieren. Die Nicht-Erreichbarkeit ließ mich schlimmstes befürchten: Man hat den Server eine Woche zu früh abgeschalten und die Platten formatiert!

Nun, ich hab gemailt und telefoniert und kam schließlich im Rechenzentrum 3 bei Hetzner raus, wo man mir sehr unkompliziert geholfen hat. Die Diagnose: mein Server bootet und bootet und bootet… immer wieder, ohne Unterlaß. Der Techniker meinte, daß er keine Erfahrung mit FreeBSD hat und konnte die Ursache nicht erkennen. Also hat er mir einen Lara angeschlossen und die Zugangsdaten gemailt.

Sowas hatte ich noch nicht erlebt. Mein FreeBSD bootete und brach sofort mit Kernelfehlern ab, um sofort wieder zu booten. Das konnte nicht am BSD liegen, der Fehler hätte eher auftreten müssen, also aktivierte ich das Rettungssystem von Hetzner, das über TFTP auf allen Maschinen bereitsteht und habe mal den Memtest86 angeworfen.

Speicherfehler
Speicherfehler beim Hetzner-Server

Heureka, so viele Fehler hatte ich noch nie bei einem Speichermodul. Habe auch gleich einen schicken Schnappschuß gemacht.

Nachdem ich dem Techniker Bescheid gesagt hatte, daß es sich um ein Speicherproblem handelt, hat er den RAM innerhalb von einer halben Stunde getauscht. Seitdem läuft der Server wieder. Das nenne ich Service! Ich werde den Techniker für eine Beförderung vorschlagen 🙂

Und frühstücken konnte ich dann auch noch…

Uwe Vigenschow: Objektorientiertes Testen und Testautomatisierung in der Praxis

Uwe Vigenschow: Objektorientiertes Testen und Testautomatisierung in der Praxis
Uwe Vigenschow: Objektorientiertes Testen und Testautomatisierung in der Praxis

Uwe Vigenschows Buch über Softwaretests und deren Automatisierung ist eines der besten, das ich bisher zu diesem Thema gelesen habe – wenn nicht sogar das beste schlechthin.

Das Buch ist in vier Teile gegliedert, wobei der erste eine angenehm kurze Einführung in die Thematik darstellt und wesentliche Gründe für Softwaretests aufzählt. Danach geht’s gleich ans Eingemachte, im zweiten Teil „Verfahren des Softwaretests“ werden Lösungen für technische (Compiler-Warnungen, Typprüfung, Debugging), analytische (Testdaten und Testfälle ableiten) und methodische (Code-Reviews, Finden guter Testdaten, Überdeckungen) Probleme gezeigt. Daran schließen sich noch zwei Kapitel über das Testen objektorientierter Software (speziell die Probleme mit Vererbung und Assoziationen) und organisatorische Abläufe beim Testen (TDD, Refactoring) an.

Der dritte Teil widmet sich der praktischen Umsetzung, insbesondere der Automatisierung von Tests mit verschiedenen xUnit-Frameworks.

Im vierten und letzten Teil geht der Autor auf die Besonderheiten von Echtzeit- und eingebetteten Systemen ein (dieses Kapitel habe ich nicht gelesen) und die Einführung von Testprofilen als Element der UML 2.

Anhänge mit Beispielimplementierungen in verschiedenen xUnit-Frameworks und einer Übersicht objektorientierter Testmuster runden das Buch ab.

Mein Fazit: Selten lesen sich Fachbücher so angenehm, insbesondere bei der trockenen Thematik des Softwaretestens. Das Buch bringt zwar wenig zur Theorie – der ganze Gegensatz zum Perry – aber genau das macht es für jemanden, der praktisch mit Softwaretests arbeiten will zu einer schnellen Einführung und einem guten Rategeber.

Website zum Buch

CenterICQ mit UTF-8

Als Instant Messenger benutze ich seit einer kleinen Ewigkeit CenterICQ. Das funktionierte auch bisher ganz prima. Nun bin ich aber von FreeBSD 6 zurück zu SuSE Linux 10 gewechselt, weil ich den VMware Player benötige, der ja unter FreeBSD bekanntermaßen nicht läuft.

Leider klappt das mit CenterICQ und der UTF-8 im KDE-Terminal nicht ganz so, wie’s gedacht ist. In den unendlichen Weiten des Internet habe ich dann eine Lösung gefunden.

Statt des normalen Aufruf nutzt man das luit von X.org:

LANG=de_DE luit centericq

Normalerweise gibt man ja die Sprache anders an, z.B. LANG=de_DE.UTF-8. Das funktioniert aber in diesem Fall nicht!

Auf jeden Fall habe ich gleich mal die CenterICQ.desktop-Datei für die KDE-Konsole hochgeladen. Einfach nach ~/.kde/share/apps/konsole/ kopieren.