Kategorien
Archiv

Archiv für die Kategorie „Job und Beruf“

Pendlerpauschale beim “Weissen” angekommen :D

HA! Das erste Jahr, wo ich meine Steuererklärung gemacht habe, haut auch gleich gut rein: Habe ich schon Anfang 2008 aus meiner Steuererklärung für 2007 schon rund 806,- € zurückbezahlt bekommen, kamen nun noch einmal 373,27 € für die rückwirkend ausbezahlte Pendlepauschale dazu! :)

Das ist ja mal stark! Somit haben mir diese 2-3 Stunden Arbeit, die ich in meine erste Steuererklärung gesteckt habe, insgesamt 1.179,60 € gebracht! :) Das ist ja mal ein Stundenlohn …

Ich habe ehrlich gesagt gezweifelt, ob das wirklich alles so automatisch, ohne weiteren Schriftverkehr über die Bühne geht, wie in den Medien angekündigt. Und Tatsache: Meine Sorgen waren unbegründet! Ich zumindest, habe keine Anfrage oder ähnliches an das Amt gerichtet und nun, vollkommen automatisch, diese Rückzahlung erhalten: Super! :)
Das sich der Staat diesen Verlust nicht an anderer Stelle wiederholt, wurde ja garantiert. Ob das nun vielleicht doch versteckt passiert weiss ich nicht. Dazu habe ich zu wenig Ahnung vom Fluss der Gelder.
Ziel des Staats war es aber ja, durch das Versprechen sich das Geld nicht wiederzuholen, die Konjunktur anzukurbeln. Ich denke, ich nehme die 373,27 € und kaufe mir davon endlich einen guten Wäschetrockner! :) Damit die Kohle auch in Deutschland bleibt, habe ich ein Modell von Bauknecht ins Auge gefasst.
Dieser Hinweis kam, meines erachtens nach, in den Medien zu kurz: Damit die Wirtschaft angekurbelt wird, sollte wieder verstärkt in deutsche Marken investiert werden. Sonst landet das Geld wieder nur im Ausland und alles was man fördert, ist die Beschäftigung von Hungerlöhnern im Ausland. In Deutschland gehen die vielen Firmen kaputt und das muss verhindert werden!

Naja, wie auch immer: Ich habe bereits meine Steuererklärung für 2008 abgeschickt! Bin mal gespannt wieviel es diesmal wird …

Syntax Highlighting im vim aktivieren

Nur ein schneller Tipp für zwischendurch.

Unter Debian und Debian-artigen Linux Distributionen ist das Syntax Highlighting standardmäßig deaktiviert. Ist auch gut so für ein Serverbetriebssystem, da manche KVM Displays auf Farben nicht so gut zu sprechen sind.
Meistens ist dieses jedoch ein Feature, das einen ungemein bei der Arbeit unterstützt.

In diesem Blog, der leider nur von registrierten Usern Kommentare akzeptiert ( was mir aber zu umständlich ist ;) ), habe ich schnell gefunden, wie man es aktiviert:

Einfach in die Datei “/etc/vim/vimrc” die Option “syntax on” setzen. Bei Debian und Ubuntu existiert der Eintrag bereits, ist jedoch durch doppelte Anführungszeichen auskommentiert.
Das war’s schon! :) Beim nächsten Start von vim ist das Syntax Highlighting aktiviert.

Achtung: Auf diesem Wege gillt es global für alle User!
Userspezifisch kann man dasselbe erreichen, indem man stattdessen die Datei “.vimrc” im jeweiligen Home-Dir des Users wie oben beschrieben editiert.

Jede Zelle meines Körpers ist glücklich …

Immer wenn in unserem Grossraumbüro jemand droht von der bösen Wut-Welle überrollt zu werden, dann gibt es zur Züchtigung dieses Lied ;D
Gute Laune alleine schützt einen jedoch nicht. Manchmal wird es aus reiner Boshaftigkeit trotzdem gespielt ;D

Ich kann das einfach nicht mehr alleine ertragen, also teile ich diese Pein mit euch…

[flashvideo filename=wp-content/uploads/jede-zelle-meines-korpers-ist-glucklich.flv /]

USB Transfer unter Suse Linux suuuuper langsam …

Ich hatte heute den Fall auf der Arbeit, das ich auf eine an einem unserer Suse Linux Server angeschlossene USB 2.0 Festplatte mehrere Gibibyte an Daten kopieren musste.

Das dauerte …. und dauerte …. schliesslich fiel mir auf, das die Daten mit nur 160 KB/s kopiert wurden. Das kam mir komisch vor, schliesslich sollten die Datenraten von USB 2.0 doch deutlich höher liegen. In diesem Wiki-Artikel fand ich schliesslich heraus, das es (laut Spezifikation) 480 Mbit/s hätten sein sollen; also ca. 60 MebiByte pro Sekunde.
Das hat mich dann schon sehr gewundert, schliesslich ist das nur ca. 1/384tel Bruchteil der Transferkapazität des Buses.

Eine erste Recherche heute auf der Arbeit förderte diesen Foreneintrag von Dezember 2007 zu Tage, in dem der Hinweis gegeben wird, das dieses Problem verschwindet, wenn die mount-Option “sync” weggelassen wird. Als ich es ebenfalls probiert habe ohne “sync” zu mounten, war es auch schlagartig schneller.

Inzwischen habe ich etwas genauer nachrecherchiert:
Bei dem ganzen handelt es sich um einen zumindest bei Novell (Suse) bekannten Bug (siehe Novell Bugzilla Database #105871). Ob er nun nur bei Suse Linux auftritt oder ob es ein genereller Linux Bug ist, das weiss ich nicht. Und ehrlich gesagt bin ich jetzt auch zu faul den ganzen Bug zu lesen. Wer mag, kann das gerne nachholen.

Unter’m Strich bleibt zumindest für Suse Linux in der Version 10.x folgende Lösung: USB Laufwerke nicht mit der mountoption “sync” mounten!
(Ob andere Suse Linux Versionen oder gar andere Distributionen betroffen sind weiss ich nicht; einfach ausprobieren!).

Für per “subfs” gemountete Dateisysteme gibt es einen weiterführenden Workarround um sicher zu stellen, das diese Dateisysteme nicht mit “sync” gemounted werden:

  1. mkdir -p /usr/share/hal/fdi/policy/95userpolicy
  2. Eine Datei namens “nosync.fdi” darin erzeugen (vi /usr/share/hal/fdi/policy/95userpolicy/nosync.fdi) und darin folgenden Inhalt anlegen:
    <?xml version=”1.0″ encoding=”UTF-8″?>
    <deviceinfo version=”0.2″>
    <device>
    <!– disable sync for mount –>
    <match key=”block.is_volume” bool=”true”>
    <match key=”volume.fsusage” string=”filesystem”>
    <match key=”volume.uuid” string=”==UUID==”>
    <merge key=”volume.policy.mount_option.sync”
    type=”bool”>false</merge>
    </match>
    </match>
    </match>
    </device>
    </deviceinfo>
  3. Ausführen von “lshal“. Die Passage im unter Punkt 2. aufgeführten Text die hier temporär mit “==UUID==” befüllt ist, mit der Ausgabe dieses Befehls ersetzen.
  4. HAL Daemon neu starten (rhal restart)

Ich hoffe dieses hilft einigen von Euch :)

Wie immer würde ich mich freuen, wenn ihr einen kurzen Kommentar eintragen würdet!

Achja, wie immer der Hinweis: Wer sich über diese “merkwürdigen” Bezeichnungen wie “MebiByte”, GibiByte”, etc. wundert, dem sein mein Artikel über Binärpräfixe als Lektüre ans Herz gelegt :)

Apache – Anfragen ohne www. umleiten

Suchmaschinen bewerten eine Seite und deren Inhalt anhand vieler, teilweise dem normalen User garnicht bewusste, Kriterien um den PageRank einer Seite zu bestimmen, bzw. deren Relevanz zu einem Suchbegriff.
So wird es z.B. von Suchmaschinen inzwischen geahndet, wenn ein und derselbe Inhalt über zwei verschiedene Adressen erreichbar ist.
Es ist für eine Suchmaschine bereits ein Unterschied, ob eine Seite ohne www. Subdomain-Präfix (z.B. http://webseite.de ) oder mit www. Subdomain-Präfix (z.B. http://www.webseite.de ) aufgerufen werden kann. Das ist auch soweit korrekt, da in verschiedenen Subdomains ja vollkommen andere Inhalte bereitgestellt werden können. Im weitesten Sinne können sich ja gar vollkommen andere Server hinter jeder Subdomain verbergen. Und www ist letzten endes auch nur eine Subdomain. Aus Sicht der Bewertungslogik einer Suchmaschine, handelt es sich bei einer Domain http://webseite.de und http://www.webseite.de um völlig verschiedene Webseiten.

Man nehme nur mal an das wäre nicht so. Dann könnte sich ja jeder Kinz und Kunz, der nur ein einziges Mal eine HTML Seite mit allen möglichen Suchbegriffen von Abakus bis Zypern hochgeladen hat, beliebig viele (Sub-/)Domains auf diese HTML Seite zeigen lassen, und somit quasi alleine in den Suchergebnissen auftauchen. Somit verdrängen Website-Spammer ja fast alle anderen relevanten Seiten, die ordnungsgemäß nur eine Domain auf ihre Webpräsenz zeigen lassen, völlig aus den Suchergebnissen.

Man kann dieser Herabstufung der eigenen Präsenz jedoch ganz einfach entgegenwirken: Indem man einfach alle Anfragen an http://webseite.de nach http://www.webseite.de umleitet.
Hierzu bietet sich das Apache Modul mod_rewrite an. Es handelt sich hierbei um ein sehr mächtiges Modul, welches bestimmte Adressen zu beliebigen anderen Adressen umformen kann. Es hat dabei seine ganz eigene Syntax um hierfür Regeln zu definieren. Diese ist viel zu mächtig um sie hier auch nur annähernd zu erklären; wen es interessiert, der kann die Anleitung zu diesem Modul hier finden.
An dieser Stelle sei nur erklärt, wie man seinen Apache Webserver dazu bringen kann, die URL ohne www. zu einer Adresse mit www. umzuformen:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^webseite\.de$ [NC]
RewriteRule ^(.*)$ http://www\.webseite\.de$1 [R=301,L]

Dieser Absatz kann per .htaccess Datei, per vHost oder global in der Apache Konfiguration eingefügt werden. Nicht vergessen den Webserver neu zu starten und ausprobieren!
Ich erkläre die drei Zeilen wie gesagt nur ganz grob, da ich keine Lust habe der 1.000. Wiederkäuer der Moduldokumentation zu werden:

Zeile 1:
Hier wird die Rewrite Engine eigentlich nur aktiviert, damit das Modul überhaupt angesteuert werden kann.

Zeile 2:
Mit “RewriteCond” wird das Muster definiert, welches, sofern es in der eingegebenen Adresse vorkommt, nach den Bedingungen der Direktive “RewriteRule” schliesslich umgeformt werden soll. %{HTTP_HOST} ist eine Variable, die vom Modul mod_rewrite zur Laufzeit der Rewrite Engine automatisch erzeugt wird. Sie beinhaltet die in der HTTP-Protokollanfrage angegebenen Hostnamen.
Dadurch das diese Variable an der 1. Position nach ”RewriteCond” steht, wird dieses bei der Anfrage nach dem an der 2. Position stehendem Muster durchsucht.
Das Muster an der 2. Position nach “RewriteCond” ist ein regulärer Ausdruck; eine weitere Technik, die zu erklären hier den Rahmen sprengen würde. Er besagt, das die Zeichenkette in der Variable %{HTTP_HOST} genau “webseite.de” sein muss; ohne ein Zeichen davor und ohne ein Zeichen dahinter. (“/unterseite.html” zum Beispiel ist nicht Teil dieser Veriablen, da es hinter dem “/” steht). Die Zusatzoption [NC] an der 3. Position nach “RewriteCond” bedeutet, das Groß- und Kleinschreibung in der URL egal ist. (NC = Non Casesensitive).

Zeile 3:
Diese Zeile definiert letzten Endes die Regel, nach der die Anfrage modifiziert werden soll. Es handelt sich zunächst wieder um einen regulären Ausdruck, der besagt, das die gesamte Zeichenkette, welche durch “RewriteCond” analysiert wurde, durch “http://www.webseite.de/urspruengliche/anfrage.html” ersetzt werden soll (“/ursprüngliche/anfrage.html” ist selbstverständlich nur ein Beispiel. Hier wird immer eingefügt, was nach der TLD angegeben worden ist). Dabei soll der HTTP Statuscode 301 (Permanent Redirect) in der Antwort versendet werden und dieses ist die letzte Regel ([L]). Danach sollen keine mehr folgen. So werden Endlosschleifen vermieden und der Arbeitsbereich der RewriteEngine klar abgegrenzt.

Keine Impressumspflicht im herkömmlichen Sinne bei Homepages

Vor mehreren Wochen kam bereits einmal die Frage auf meiner Homepage auf, ob eine Impressumspflicht auf privaten, nicht kommerziellen Webseiten besteht und wenn ja, in welchem Umfang hier Informationen bereitgestellt werden müssen. Genügt ein Webformular zum Versenden einer eMail? Muss eine Telefonnummer angegeben sein? Muss am Ende gar die komplette, private Anschrift angegeben werden?

Ein Urteil des Europäischen Gerichtshofes (EuGH, Urteil v. 16.10.2008, C‑298/07) schafft nun ein wenig mehr Klarheit und schlägt zu gunsten der unbescholtenen Privatpersonen aus.
Demnach reicht es aus, wenn Kunden ein elektronisches Kontaktformular auf der Internetseite vorfinden.

Lest hierzu auch den Artikel auf www.shopbetreiber-blog.de. Der Artikel bezieht sich zwar in allererster Linie auf Shopbetreiber, jedoch kann wohl niemand vor Gericht von Privatpersonen mehr verlangen als für kommerzielle Seitenbetreiber gilt. Ausserdem ist es ein Urteil eines Handelsgerichtsstandes sondern ein allgemeines Gericht.

Ich verstehe dieses Urteil so, das ich in meinem Impressum lediglich das Webformular stehen muss. Und danach werde ich auch handeln – BASTA ! :D

fastlogres gefunden!

Es ist echt unglaublich!
Man sucht stundenlang, und findet NICHTS!

Dann schreibt man irgend eine Mail/ICQ Nachricht, oder einen Blogeintrag und kaum ist das raus: SCHWUPPS – gefunden!
So sollte ich das immer machen …. in diesem Sinne: Wer hat meine 5.000,- € gesehen??? ;)

Spass beiseite: Ich habe doch noch in den Tiefen unserer Dateisysteme zwei Archive gefunden.
Eines, mit der Binären Version von fastlogres 0.2.0 für i386er Systeme, und den Quellcode zu fastlogres 0.2.1 .

In letzterem findet sich auch ein sehr ordentlich gepflegtes README, welches Aufschluss auf den Autor gibt. Es handelt sich dabei um einen “Jan Wedekind”. Seine Homepage ist laut README http://www.wede.de und fastlogres soll dort unter http://www.wede.de/sw/fastlogres/ zu finden sein.
Leider ist das nicht der Fall, und die Seite gibt es nicht mehr.
Eine Suche nach “Jan Wedekind” brachte ein paar Blogs hervor, jedoch keine neue Homepage.

Was soll’s? Mach ich halt den Mirror:

Binär:

Quelltext:

Das ganze steht zum Glück unter GPLv2 :)

20080904 – 22:32 CET
PS:

Dank Sven’s Link (siehe Kommentare) konnte ich die alte Webseite wieder herstellen. … was heisst “wieder herstellen”? – Ich konnte sie herunterladen ;)
Ihr findet die ganze Seite nun hier.

Danke @ Sven! :)

Gesucht wird: fastlogres

Sowas habe ich echt noch nicht erlebt:

Auf unserem Server für Webseiten-Statistiken liegt ein Programm namens “fastlogres” im Ordner /usr/bin . Es handelt sich dabei um ein SUSE Linux System. Ein “rpm -qal | grep fastlogres” zeigt mir, das das Programm aus keinem RPM Paket stammt.
Normalerweise legen wir selbst kompilierte Sourcen in einem bestimmten Unterverzeichnis ab, für genau so einen Fall. Jedoch ist das in diesem Fall nicht passiert.

Eine Suchmaschienen-Recherche bringt mir leider keinen Erfolg. In keiner einzigen (!) Suchmaschiene finde ich etwas, das auf dieses Programm hinweist.

Es gibt leider keinen Switch bei dem Programm und keine Manpage, in der eine URL steht. Es gibt lediglich den switch -v zur Ausgabe der Version. Und diese Ausgabe lautet lediglich:

fastlogres 0.2.0

Das Programm löst IPs aus Apache Logfiles zu DNS Namen auf. Dieses tut es deutlich schneller als es der in AWstats eingebaute DNS Resolve Mechanismus tut. Ein Referenzlogfile eines Monats von einer unserer Seiten wird von AWstats in 57 minuten und 39 Sekunden ausgewertet. Dem gegenüber steht fastlogres mit nur 25 minuten und 53 Sekunden; also mehr als doppelt so schnell!

Genau das ist mein Ziel: Diesen Flaschenhals etwas zu “dehnen”.

Bevor ich dieses Programm gefunden habe, bin ich auf “adnslogres”, als Teil der GNU adns Bibliothek aufmerksam geworden. Diese benötigt für dasselbe Logfile

Daher: Bis jetzt ist fastlogres mit abstand das schnellste Programm!

Nur finde ich es nirgendwo im Netz :(
Es kann doch nicht sein, das auf unserem Server ein Programm läuft und derart super funktioniert, ohne das man im Internet auch nur einen Hinweis darauf findet.

Wenn jemand dieses Tool kennt, wäre ich höchst dankbar, wenn er mir hier einen Hinweis geben könnte.

Auch Alternativen, die die beschriebene Aufgabe erfüllen können, sind sehr gerne gesehen! :)

VMware unter (*)ubuntu zum laufen bringen

Hallo zusammen!

Ich habe ja länger nichts geschrieben. Aufgrund der heutigen Aktion mit VMware unter Linux sehe ich mich dazu aber fast gezwungen. Das ist mal wieder _so_ schwachsinnig und typisch VMware, das muss einfach festgehalten werden:

Was ich schon kenne im Zusammenhand mit VMware Server unter Linux ans laufen bringen ist, das man irgendwie immer erst einen Kernel kompilieren muss, da die mit der Distribution mitgelieferte GCC Version in aller Regel eine andere ist, als die, mit der der ebenfalls mitgelieferte Kernel kompiliert wurde.

Zumindest war das unter meinem Debian System so.
Nun habe ich jedoch ein (k)ubuntu auf meinem Laptop und bekomme nach der Installation von VMware Server, beim starten der VMware Konsole diesen Block an Fehlermeldungen:

/usr/local/lib/vmware/bin/vmware:
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4′ not found (required by /usr/lib/libcairo.so.2)
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0′ not found (required by /usr/local/lib/libstdc++.so.6)
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4′ not found (required by /usr/lib/libcairo.so.2)
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0′ not found (required by /usr/local/lib/libstdc++.so.6)
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4′ not found (required by /usr/lib/libcairo.so.2)
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0′ not found (required by /usr/lib/libstdc++.so.6)

Ich denke mir schon so .oO( … oh NO! Nicht schon wieder Kernel backen! ). Ist aber auch garnicht nötig gewesen! :)

Auf dieser Seite fand ich die Lösung. Sie liest sich erstmal so “… alles klar … lösche ich mal ein paar Libraries … dadurch wird’s bestimmt besser …”</ironie>. Aber: Das klappt wirklich!

Man muss nur die Datei lib/libgcc_s.so.1/libgcc_s.so.1 (im Unterverzeichnis, wo man den VMware Server installiert hat. Bei mir z.B.: /usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1 ) entfernen, bzw. umbenennen. Anschliessend startet VMware ohne Probleme … kurios! :)

mod_auth_mysql für apache2.2.x kompilieren

Mal wieder: Wir brauchen mod_auth_mysql , haben den apache2.2.8 auf dem Server laufen, und kriegen diesen tollen Fehler:

# /server/service/www/apache2/bin/apxs -c -L/usr/lib/mysql -I/usr/include/mysql -lmysqlclient -lm -lz mod_auth_mysql.c
/server/service/www/apache2/build/libtool –silent –mode=compile gcc -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/server/service/www/apache2/include -I/server/service/www/apache2/include -I/server/service/www/apache2/include -I/usr/include/mysql -c -o mod_auth_mysql.lo mod_auth_mysql.c && touch mod_auth_mysql.slo
mod_auth_mysql.c:591: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:591: warning: cast to pointer from integer of different size
mod_auth_mysql.c:591: error: initializer element is not constant
mod_auth_mysql.c:591: error: (near initialization for ‘mysql_auth_cmds[0].cmd_data’)
mod_auth_mysql.c:595: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:595: warning: cast to pointer from integer of different size
mod_auth_mysql.c:595: error: initializer element is not constant
mod_auth_mysql.c:595: error: (near initialization for ‘mysql_auth_cmds[1].cmd_data’)
mod_auth_mysql.c:599: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:599: warning: cast to pointer from integer of different size
mod_auth_mysql.c:599: error: initializer element is not constant
mod_auth_mysql.c:599: error: (near initialization for ‘mysql_auth_cmds[2].cmd_data’)
mod_auth_mysql.c:603: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:603: warning: cast to pointer from integer of different size
mod_auth_mysql.c:603: error: initializer element is not constant
mod_auth_mysql.c:603: error: (near initialization for ‘mysql_auth_cmds[3].cmd_data’)
mod_auth_mysql.c:607: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:607: warning: cast to pointer from integer of different size
mod_auth_mysql.c:607: error: initializer element is not constant
mod_auth_mysql.c:607: error: (near initialization for ‘mysql_auth_cmds[4].cmd_data’)
mod_auth_mysql.c:611: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:611: warning: cast to pointer from integer of different size
mod_auth_mysql.c:611: error: initializer element is not constant
mod_auth_mysql.c:611: error: (near initialization for ‘mysql_auth_cmds[5].cmd_data’)
mod_auth_mysql.c:615: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:615: warning: cast to pointer from integer of different size
mod_auth_mysql.c:615: error: initializer element is not constant
mod_auth_mysql.c:615: error: (near initialization for ‘mysql_auth_cmds[6].cmd_data’)
mod_auth_mysql.c:619: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:619: warning: cast to pointer from integer of different size
mod_auth_mysql.c:619: error: initializer element is not constant
mod_auth_mysql.c:619: error: (near initialization for ‘mysql_auth_cmds[7].cmd_data’)
mod_auth_mysql.c:623: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:623: warning: cast to pointer from integer of different size
mod_auth_mysql.c:623: error: initializer element is not constant
mod_auth_mysql.c:623: error: (near initialization for ‘mysql_auth_cmds[8].cmd_data’)
mod_auth_mysql.c:627: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:627: warning: cast to pointer from integer of different size
mod_auth_mysql.c:627: error: initializer element is not constant
mod_auth_mysql.c:627: error: (near initialization for ‘mysql_auth_cmds[9].cmd_data’)
mod_auth_mysql.c:631: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:631: warning: cast to pointer from integer of different size
mod_auth_mysql.c:631: error: initializer element is not constant
mod_auth_mysql.c:631: error: (near initialization for ‘mysql_auth_cmds[10].cmd_data’)
mod_auth_mysql.c:635: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:635: warning: cast to pointer from integer of different size
mod_auth_mysql.c:635: error: initializer element is not constant
mod_auth_mysql.c:635: error: (near initialization for ‘mysql_auth_cmds[11].cmd_data’)
mod_auth_mysql.c:639: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:639: warning: cast to pointer from integer of different size
mod_auth_mysql.c:639: error: initializer element is not constant
mod_auth_mysql.c:639: error: (near initialization for ‘mysql_auth_cmds[12].cmd_data’)
mod_auth_mysql.c:643: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:643: warning: cast to pointer from integer of different size
mod_auth_mysql.c:643: error: initializer element is not constant
mod_auth_mysql.c:643: error: (near initialization for ‘mysql_auth_cmds[13].cmd_data’)
mod_auth_mysql.c:651: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:651: warning: cast to pointer from integer of different size
mod_auth_mysql.c:651: error: initializer element is not constant
mod_auth_mysql.c:651: error: (near initialization for ‘mysql_auth_cmds[14].cmd_data’)
mod_auth_mysql.c:655: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:655: warning: cast to pointer from integer of different size
mod_auth_mysql.c:655: error: initializer element is not constant
mod_auth_mysql.c:655: error: (near initialization for ‘mysql_auth_cmds[15].cmd_data’)
mod_auth_mysql.c:659: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:659: warning: cast to pointer from integer of different size
mod_auth_mysql.c:659: error: initializer element is not constant
mod_auth_mysql.c:659: error: (near initialization for ‘mysql_auth_cmds[16].cmd_data’)
mod_auth_mysql.c:663: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:663: warning: cast to pointer from integer of different size
mod_auth_mysql.c:663: error: initializer element is not constant
mod_auth_mysql.c:663: error: (near initialization for ‘mysql_auth_cmds[17].cmd_data’)
mod_auth_mysql.c:667: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:667: warning: cast to pointer from integer of different size
mod_auth_mysql.c:667: error: initializer element is not constant
mod_auth_mysql.c:667: error: (near initialization for ‘mysql_auth_cmds[18].cmd_data’)
mod_auth_mysql.c:671: error: expected expression before ‘mysql_auth_config_rec’
mod_auth_mysql.c:671: warning: cast to pointer from integer of different size
mod_auth_mysql.c:671: error: initializer element is not constant
mod_auth_mysql.c:671: error: (near initialization for ‘mysql_auth_cmds[19].cmd_data’)
mod_auth_mysql.c: In function ‘format_request’:
mod_auth_mysql.c:947: warning: pointer/integer type mismatch in conditional expression
apxs:Error: Command failed with rc=65536

Woran liegt’s? Zunächst: Keine Ahnung.

Irgendwann findet man aber raus, das man diesen Patch anwenden muss. Dann geht’s problemlos.

Das geht wie folgt:

  1. Am besten das mod_auth_mysql – Quellenverzeichnis nochmal löschen und das TAR neu entpacken.
  2. Wechsel in das Quellenverzeichnis mod_auth_mysql-3.0.0.
  3. Ausführen von “patch < ../mod_auth_mysql-3.0.0-apache-2.2.patch” (ich gehe davon aus, das der Patch ein Verzeichnis höher liegt; sonst bitte entsprechend anpassen).

Das sollte es gewesen sein. Als Resultat bekommt man:

patching file mod_auth_mysql.c

Anschließend sollte sich das Modul wie beschrieben per apxs kompilieren lassen.