Auronia IRC News

Auronia IRC News

Neuigkeiten aus der Welt des Internet Relay Chats

Erfahrungsbericht mit dem UnrealIRCd Support und HowTo zur Kompilierung unter Windows

Erstellt von Flo am Sonntag 10. Januar 2010

Ich habe mir mit Rhodan zusammen überlegt, mal einen Erfahrungsbericht von mir zu veröffentlichen. Ich hoffe, dass euch diese neue Art von Beitrag interessiert.

Das Vorhaben

An einem kalten Sonntagabend beschloss ich den Support des UnrealIRCd Projekts zu testen. Das UnrealIRCd Projekt entwickelt seit vielen Jahren einen IRC Server, welcher auf einfache Benutzbarkeit optimiert wurde.

Obwohl die meisten Benutzer IRCD Server unter auf UNIX basierten Betriebssysteme betreiben, gibt es Ausnahmen, welche diese mit Betriebssystemen der Firma Microsoft betreiben wollen.

Nachdem ich von der Entwicklung der neuen UnrealIRCd Version erfahren habe, beschloss ich zum direkten Vergleich den UnrealIRCd Server in der Version 3.2.8.1 mit dem Microsoft C++ Compiler zu kompilieren.

Wie kompiliert man den UnrealIRCd mit dem Microsoft C++ Compiler

Hierzu öffnet man die Microsoft Visual Studio Konsole mit der Verknüpfung, welche unter “Start => Programme => Microsoft Visual Studio 2008 => Visual Studio Tools” zu finden ist und “Visual Studio 2008-Eingabeaufforderung” heisst.

Anschließend navigiert man in den “Haupt” Ordner des Quellcodes. In diesem befindet sich die Datei “makefile.win32”.

Nun startet man mit dem Befehl “nmake -f makefile.win32” den Kompilierungsprozess.

Hierbei tritt folgender Befehl auf:

wircd.def : error LNK2001: unresolved external symbol add_remote_include
wircd.def : error LNK2001: unresolved external symbol add_send_mode_param
wircd.def : error LNK2001: unresolved external symbol badwords_stats
wircd.def : error LNK2001: unresolved external symbol ban_version
wircd.def : error LNK2001: unresolved external symbol fast_badword_match
wircd.def : error LNK2001: unresolved external symbol fast_badword_replace
wircd.def : error LNK2001: unresolved external symbol find_loaded_remote_include

wircd.def : error LNK2001: unresolved external symbol find_remote_include
wircd.def : error LNK2001: unresolved external symbol m_names
wircd.def : error LNK2001: unresolved external symbol myargv
wircd.def : error LNK2001: unresolved external symbol mystpcpy
wircd.def : error LNK2001: unresolved external symbol our_strcasestr
wircd.def : error LNK2001: unresolved external symbol remote_include
wircd.def : error LNK2001: unresolved external symbol send_channel_modes
wircd.def : error LNK2001: unresolved external symbol send_channel_modes_sjoin
wircd.def : error LNK2001: unresolved external symbol send_channel_modes_sjoin3
wircd.def : error LNK2001: unresolved external symbol snprintf
wircd.def : error LNK2001: unresolved external symbol stripbadwords
wircd.def : error LNK2001: unresolved external symbol w_whois
wircd.def : error LNK2001: unresolved external symbol webtv_cmds
wircd.def : error LNK2001: unresolved external symbol webtv_parse
wircd.lib : fatal error LNK1120: 21 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
\link.EXE"' : return code '0x460'
Stop.

Der Support

Ich war der Meinung, dass dies ein Fehler der Entwickler war und begab mich in das offizielle Support IRC Netzwerk von UnrealIRCd, welches die Adresse “irc.UnrealIRCd.com” hat. Da ich der Meinung war, dass es kein “Benutzerfehler” war, begab ich mich in den Channel “#unreal-devel” um die Entwickler über diesen Fehler zu informieren.

Dort traf ich auf Stealth, welcher mich mit einem Channel Ban darauf hinwies, dass ich im falschen Channel bin und doch bitte die FAQ lesen solle.

Dort findet man unter dem Artikel “Compiling – Windows: unresolved external symbol ..” einen fehlerhaften Auszug aus dem Kompilierungsprozess, wessen Fehler aber nicht mit meinen übereinstimmt. Dort wurde mit einem fehlerhaften Link auf eine Anwendung “dlltool.exe” verwiesen. Nach erfolgreichem googlen fand ich dieses Programm unter der Adresse http://www.vulnscan.org/tmp/dlltool.exe.

In der FAQ stand folgende Instruktion:

nmake -f makefile.win32 [your other options here]
nmake -f makefile.win32 SYMBOLFILE
nmake -f makefile.win32 [your other options here]

So basically you just run nmake -f makefile.win32 SYMBOLFILE and then restart compiling again.

Auf Grund langjähriger Erfahrungen mit OpenSource Software war ich der Meinung, dass “SYMBOLFILE” ein Platzhalter sein müsse, welchen ich durch die fehlerhafte Objektdatei ersetzen muss. Allerdings bekam ich nur einen Hinweis, dass die Objektdatei existiert.

Als ich in “#UnrealIRCd” bezüglich diesen Fehlern nachfragte, wies mich der Benutzer “commx” darauf hin, dass ich doch bitte in “#UnrealIRCd-support” fragen möchte. Stealth bannte mich darauf hin auch im “#UnrealIRCd” Channel.

Direkt als ich den “#UnrealIRCd-support” Channel betrat, wurde ich schon wieder gebanned mit der Begründung, dass meine Anwesenheit nicht erwünscht ist und ich nicht in der Lage bin einfache Instruktionen durchzuführen.

Die Lösung

Nun habe ich aus purem Sarkasmus den Befehl so ausgeführt, wie er dort stand:

nmake -f makefile.win32 SYMBOLFILE

und es funktionierte.

Fazit

Die Freundlichkeit des Supports lässt zu wünschen übrig. Man hätte den Fehler suchen können anstatt den Benutzer aus diversen Channels zu bannen. Vielleicht war mein Problem auch nur der offizielle Grund. Ich habe den Nicknamen “irc1” verwendet, welcher nicht wirklich einfallsreich war.

Ein OpenSource Projekt sollte vor der STABLE Freigabe unter Windows kompiliert werden und auf eventuell auftretende Fehler untersucht werden. Hätte das UnrealIRCd Projekt dies getan, wäre mein Fehler nicht aufgetreten.

2 Kommentare zu “Erfahrungsbericht mit dem UnrealIRCd Support und HowTo zur Kompilierung unter Windows”

  1. commx sagt:

    Hallo,

    du hast schon recht wenn du sagst dass der Support zu wünschen übrig lässt. Das Problem ist einfach dass es (momentan) strikte Regeln gibt, um Support zu erhalten. Jeder Benutzer der Support möchte, muss ein Quiz lösen. Fällt er da durch – wird er gebannt. Der Grund für all das ist einfach nur dass wir (ich bin erst seit wenigen Wochen dabei!) teilweise Nutzer haben, die sich mit Computern, geschweige denn wie man Server aufsetzt/benutzt, kein Stück auskennen. Einen IRC-Server zu betreiben erfordert eine Reihe von Kenntnissen, die die wenigsten mitbringen. Wenn wir jemandem erst mal erklären müssen, wie man einen Compiler installiert, dann schießt dass doch schon sehr über das Ziel hinaus.

    Dennoch werde ich mich persönlich dafür einsetzen, dass der Support verbessert wird. Spätestens mit dem Launch der sich in Entwicklung befindlichen UnrealIRCd 4 wird sich einiges ändern. Es soll zwar jedem die Möglichkeit gegeben werden, einen IRC-Server zu betreiben, jedoch müssen wir die Nutzer genügend über Risiken und Erwartungen aufklären. Rom wurde ja auch nicht in einer Woche erbaut. 🙂

    LG

  2. InsideBernd sagt:

    Vielen Dank für die Stellungsnahme seitens dem UnrealIRCd Projekt. Ich sehe ein, dass ich anfangs den falschen Channel gejoint bin, finde aber das “Ban” Prinzip nicht wirklich passend. Wie wäre es mit einem System, welches Benutzern, die die Fragen richtig beantwortet haben, in einem muted Channel das +v Recht gibt?

Kommentar schreiben

XHTML: Sie können diese Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>