Freitag, 30. Mai 2008

Code Drive finanziert 4 Projekte

Die Haiku Gemeinschaft hat sich in den letzten 2 Wochen äußerst großzügig gezeigt. Für den Haiku Code Drive 2008 kamen in dieser kurzen Zeit $7.472,42 $7.519,87 zusammen; insgesamt 120 Spenden aus 24 Ländern!

Die Abstimmung hat ergeben, dass die folgenden Projekte mit jeweils $2.500 unterstützt werden sollen:

  1. Salvatore Benedetto - BFS Stresstest, UDF lesend evtl. auch schreibend
  2. Jovan Ivankovic - CUPS Port (Drucken)
  3. Yin Qiu - ICMP (Netzwerk)
  4. JiSheng Zhang - DV Media Node (Zugriff auf Firewire Quellen)
Die zusätzlichen $2.500 für das 4. Projekt wird aus den Einnahmen des Google Summer of Code kommen. Für jeden der dortigen 5 Plätze erhält das "Mutterprojekt" nämlich $500.

Glückwunsch an die Gewinner und viel Spaß und Erfolg bei der Umsetzung während der nächsten 3 Monate!

Dienstag, 27. Mai 2008

4. Thank You Award: Abstimmung

Die Liste der Kandidaten ist nun komplett:

  • Michael "mmlr" Lotz - für die USB OHCI Unterstützung
  • Gerald Zajac - für den S3 Treiber für Trio, Virge und Savage Grafikkarten
  • François "mmu_man" Revol - USB Webcam Add-On und PPC Port
  • Stefano "Jack Burton" Ceccherini - InterfaceKit und Terminal
  • Tako "0033" Lansbergen - Entwicklungs IDE Niue

Die Abstimmung läuft bis zum 31. Mai.

Sonntag, 25. Mai 2008

Kandidaten für Thank You Award gesucht

Ab 27. Mai findet die Abstimmung für 4. Thank You Award statt. Wer noch Kandidaten vorschlagen will, muss dies bis dahin tun (entweder als Kommentar auf der Haikuware Website oder auch als Mail an mich, dann leite ich's weiter). Zusammen mit dem Namen muss angegeben worum sich der Kandidat seit dem letzten Award verdient gemacht hat.

Bisher nominiert sind:

  • Michael "mmlr" Lotz - für die USB OHCI Unterstützung
  • Gerald Zajac - für den S3 Treiber für Trio, Virge und Savage Grafikkarten
Der Gewinner wird am 1. Juni bekannt gegeben.

Freitag, 23. Mai 2008

Haiku Code Drive: Abstimmung eröffnet

Der Haiku Code Drive läuft jetzt seit etwa einer Woche und bis jetzt sind bereits über $5.200 eingegangen!
Nachdem jedes Projekt mit $2.500 gesponsert wird, liegt die nächste Hürde bei $7.500. Wer mithelfen will dieses Ziel zu erreichen, kann noch bis zum 29. Mai seine Spende abgeben.

Um den Endspurt des Code Drives nochmal anzukurbeln und die Aktion zu nutzen Haiku bekannter zu machen, schlägt Jorge Mare vor eine "Pressemitteilung" herauszubringen. Er bittet darum, die Gemeinschaft möge sich um die Verbreitung bei relevanten Opensource Webseiten, Blogs etc. kümmern. Hier ist eine Übersetzung ins Deutsche. Ich würde mich freuen, wenn die Gazette Leser dabei mitmachen würden. Vielleicht ein Kommentar hinterlassen, an wen ihr's geschickt habt. Wir wollen ja nicht sinnlos rumspammen...

Ebenfalls bis zum 29. Mai wird auch die Abstimmung laufen, welches Projekt letztendlich mit dem Geld unterstützt wird. Seit Beginn des Haiku Code Drives ist übrigens noch ein weiterer Aspirant dazugekommen:

  • Salvatore Benedetto - BFS Stresstest, UDF lesend evtl. auch schreibend
Und natürlich die vier bereits vorgestellten Kandidaten:
  • Adrien Destugues - Preferences Panel für den Bluetooth Stack
  • Jovan Ivankovic - CUPS Port (Drucken)
  • Yin Qiu - ICMP (Netzwerk)
  • JiSheng Zhang - DV Media Node (Zugriff auf Firewire Quellen)

Donnerstag, 22. Mai 2008

Status zur Alpha Release

Stephan Aßmus schreibt über den Status der 1. Alpha Release von Haiku.

Wie bereits berichtet, hat Ingo Weinhold die nötigen Änderungen vorgenommen, um mit gcc2 und gcc4 erstellte Software gleichzeitig nutzen zu können.
Daneben gab es wieder mal eine Gemeinschaftsproduktion von Axel Dörfler und Ingo, bei der ein massiver
Bug gefixed werden konnte. Insbesondere bei starker Diskaktivität konnte jederzeit der Kernel abschmieren. Durch bereits vorher durchgeführte Änderungen am Journaling System wurde dabei zwar nicht das Dateisystem beschädigt, aber alles woran man gerade arbeitete, war natürlich weg.
Die Lösung dieses Bugs bringt Haiku einen großen Schritt weiter Richtung "Self-Hosting" und damit zur 1. Alpha Release.

Bis dahin liegen allerdings noch ein paar größere Aufgaben auf dem Weg. So müssen einige fehlende oder fehlerhafte Funktionen in den Entwicklungswerkzeugen noch nachgereicht werden. Darunter ein vollständig nativer Port von Subversion, dem Tool zum Up/Download des Sourcecodes und dessen Versionskontrolle. Zur Zeit wird dafür an einigen Bugs in der TCP Implementation gearbeitet.
Axel beschäftigt sich gerade mit dem Device Manager, der sich um alles kümmert was mit Hardware und Treibern zu tun hat. Dabei werden hoffentlich auch einige Probleme mit Hardware-Interrupts gelöst, um die bei bestimmten Geräten auftretenden Treiberprobleme auszumerzen.

Mittwoch, 21. Mai 2008

Haiku Code Drive 2008 bis zum 29. Mai

Entweder ich hab mich beim ursprünglichen Post vertan, oder die Spendenzeit für den Code Drive wurde verlängert...
Wie auch immer, bis zum 29. Mai 2008 kann noch weiter gespendet werden. Momentan steht der Topf bei etwas über $3.800. Das ist schon ein tolles Ergebnis! Es werden allerdings $5.000 benötigt, um 2 Projekte umsetzen zu können. Also, "Geben Sie reichlich." :)

Erweiterte S3 Grafikkartenunterstützung

In vielen älteren Rechnern, die sich zum Ausprobieren von Haiku eignen, befindet sich eine S3 Grafikkarte. Gerald Zajac hat sich ausgiebig mit dem s3savage Treiber beschäftigt und sich dabei eine Menge Wissen über Grafikchips, Treiber und deren Entwicklung angeeignet.

Herausgekommen ist ein S3 Treiber samt Accelerant der eine ganze Reihe verschiedener Modelle unterstützt: Trio64, Trio 3D, Virge und Savage (ausführliche Liste in Geralds Mail). Neben einigen Verbesserungen für die Savage Chips, wird bei allen Modellen versucht anhand der EDID Info des angeschlossenen Bildschirms die Liste der verfügbaren Grafikmodi zu erstellen.

Beim Testen wurde Gerald von Ronny Wisor und Meanwhile (für SuperSavage) und Rudyk „totish“ Alexander (für Twister) unterstützt. Es stellte sich heraus, dass beim Virge VX Chip bei einer 640x480 Auflösung der Hardwarecurser verschwindet. Das macht aber nichts, weil Haiku z.Zt. nur einen Softwarecursor benutzt.
Außerdem erwiesen sich der Savage 3D und Savage MX als recht lahm. Unter Last friert der Savage 3D auch gern mal ein. Trio und Virge sind also auf alle Fälle die bessere Wahl.

Gerald hat bereits angekündigt sich als nächstes um alte ATI Karten mit Rage128 und Mach64 Chips zu kümmern.

USB jetzt auch per OHCI

USB Geräte konnten schon länger via UHCI und später auch per EHCI betrieben werden. Dank Michael Lotz gelingt dies nun endlich auch mit OHCI (UHCI,EHCI,OHCI). Sofern der benötigte Treiber vorhanden ist, sollte alles funktionieren was keinen "Isochronous Transfer" benötigt: Mäuse, Tastaturen, Hubs, Memory Sticks, USB Netzwerkgeräte, USB/Seriell-Adapter usw.

Die verfügbaren Geräte findet man unter "/dev/bus/usb" (z.B. per "find /dev/bus/usb"). Mit "usb_dev_info /dev/bus/usb/x/hub" (x = das entsprechende Gerät) findet man raus, ob der Root-Hub OHCI oder EHCI ist. Indem man testweise "/boot/beos/system/add-ons/kernel/busses/usb/ehci" entfernt, kann man das System zwingen nur OHCI zu benutzen.

Michael bittet um eingehende Tests seiner Arbeit. Wer auf Fehler stößt sollte syslogs und den Output von usb_dev_info in einem entsprechenden (evtl. schon vorhandenen) Ticket im Bugtracker melden.

Dienstag, 20. Mai 2008

Haiku Inc.'s Voice Mailbox

Was bekommt man zu hören, wenn man Haiku Inc.'s Telefonnummer 917-512-8715 wählt?
Die Stimme von Dane Scott (BeOSRadio, TuneTracker Systems), die uns mitteilt, dass wieder mal keiner zuhause ist... :)

Montag, 19. Mai 2008

Haiku Podcast #14

Sikosis und Dennis d’Entremont präsentieren auch im 14. Haiku Podcast wieder die Neuigkeiten der letzten Zeit. Die Themen:

Sonntag, 18. Mai 2008

Hürden zum 64bit Haiku

Für den gcc2/4 Beitrag habe ich kurz bei Ingo nachgehakt, ob ich alles richtig verstanden habe und ihn bei der Gelegenheit gefragt, ob ein Wechsel zu 64bit ähnlich vollzogen werden könnte. Hier ist seine vorläufige Einschätzung:

"Eine ähnliche Methode könnte [man] vermutlich auch für Kompatibilitaetsbibliotheken in einem 64-bit Haiku verwenden. Allerdings sind, wie du schon vermutest, zusätzlich noch erhebliche Änderungen vonnöten:
  1. gcc 4 muss erweitert werden, dass er ein 64-bit Haiku Target unterstützt.
  2. Architekturspezifischer Code im Kernel und in den Bibliotheken hinzugefügt/modifiziert werden.
  3. Der Runtimeloader muss ELF-64 unterstützen.
  4. Sämtlicher Code muss auf die implizite Annahme geprüft werden, dass Adresspointer 32-bit lang sind. Der Compiler wird an vielen Stellen Warnungen geben, aber vermutlich nicht an allen.
1) und 3) sind relativ überschaubar -- jeweils ein paar Tage Arbeit -- aber 2) ist auf jeden Fall recht aufwendig. Ein paar Wochen sitzt man da mit Sicherheit dran, und bis es brauchbar stabil ist (also all die kleinen Fehler raus sind, die den Kernel ab und zu crashen), wird es wohl einige Monate dauern. 4) ist sehr schwer abzuschätzen, wird aber auch ein ganzer Brocken Arbeit sein."

Akut sieht Ingo den Bedarf an einem 64bit Haiku nicht, "aber wenn ALDI-Rechner nur noch mit 4 GB und mehr ausgeliefert werden, wird es langsam wirklich nötig."

Eine gegenteilige Meinung vertritt da Shade's Blogeintrag. Aber wie das so bei einem Opensource Projekt ist, tut sich nur was, wenn die aktiven Entwickler daran Interesse finden. Ich bin mir sicher, wird der Leidensdruck groß genug, wird auch die 64bit Hürde genommen. Und es ist ja nicht so als würde Haiku nicht auf 64bit Maschinen laufen. Wie z.Zt. auf meinem Notebook, auf dem trotz 64bit-fähigem Core2, Ubuntu als 32bit Version läuft.

Compiler-Mischung: gcc 2 & 4

Weil BeOS seit den Zeiten von gcc2x nicht mehr weiter entwickelt wurde, sind mit dieser Compilerversion auch das OS, alle Bibliotheken und dementsprechend auch alle Anwendungen entstanden. Um auf den bestehenden Softwarebestand zurückgreifen zu können und damit gleichzeitig viele Tests aller Aspekte des Betriebssystem zu haben, hat man sich für Haiku von Anfang an für eine (weitgehende) Source- und Binärkompatibilität zu BeOS R5 entschlossen.

Je länger Haiku zum ersten Release braucht, umso öfter wurde diese Taktik in Frage gestellt. Schließlich ist heutzutage der gcc4x aktuell und bietet neue und weiterentwickelte Features. Gerade Portierungen, wie z.B. WebKit, setzen eine aktuelle Compilerversion voraus.
Leider lässt sich der Compiler für ein Betriebssystem oft nicht so einfach wechseln. Programme, die mit einer bestimmten Version kompiliert wurden, erwarten dass z.B. benötigte Funktionen in Bibliotheken unter einem bestimmten Namen zu finden sind und C++ Datenstrukturen in einer bestimmten Weise organisiert sind. Ein neuer Compiler erzeugt jedoch anders aufgebaute Bibliotheken. Ein gcc2-kompiliertes Programm würde in einem gcc4-kompilierten Betriebssystem also nicht funktionieren. Und umgekehrt. Reine C-Programme sind im Gegensatz zu C++-Programmen davon übrigens nicht betroffen.

Ingo Weinhold hat nun umgesetzt, was schon länger angedacht wurde. Dazu änderte er den "runtime_loader" und passte Haikus Buildsystem an. Wird nun ein Programm gestartet werden die benötigten Bibliotheken in einem gcc2 bzw. gcc4 Unterverzeichnis gesucht. Diese müssen beim Erzeugen des Haiku Image durch die neue Option "--alternative-gcc-output-dir" und die Build Variable "HAIKU_ADD_ALTERNATIVE_GCC_LIBS" angelegt werden.

Voilà, alte gcc2-Anwendungen laufen in einem gcc4-Haiku. Und umgekehrt.
Wie sich das in der Praxis bewährt, wird sich zeigen. Ingos erste Versuche waren positiv: Die gcc2 Anwendungen Net+, Pe und Firefox liefen im gcc4-Haiku. Andersrum liefen die gcc4-kompilierten Standard Haiku Anwendungen im gcc2-Haiku.

Samstag, 17. Mai 2008

Haiku Code Drive 2008

UPDATE: Der Code Drive endet erst am 29. Mai 2008.

Wie anlässlich der Vergabe der 5 GSoC Plätze angekündigt, startet Haiku einen eigenen kleinen "Summer of Code". Hierzu wurden diejenigen GSoC Bewerber gefragt, die nicht unterkamen, ob sie auch für $2.500 ihr Projekt durchziehen würden. Vier Programmierer zeigten Interesse:

  • Adrien Destugues - Preferences Panel für den Bluetooth Stack
  • Jovan Ivankovic - CUPS Port (Drucken)
  • Yin Qiu - ICMP (Netzwerk)
  • JiSheng Zhang - DV Media Node (Zugriff auf Firewire Quellen)
Was jetzt noch fehlt ist die Finanzierung. Dazu dient der Haiku Code Drive 2008. Bis zum 22. 29. Mai 2008 kann jeder mit seiner Spende diese Aktion unterstützen. Je nachdem wieviel dabei zusammenkommt, können mehrere Projekte finanziert werden. Welche Projekte zum Zuge kommen wird in einer öffentliche Abstimmung ermittelt.

Der ungefähre Zeitplan sieht so aus:
  • 15. Mai - Kandidaten werden vorgestellt, Spenden werden angenommen.
  • 22. Mai - Abstimmung beginnt.
  • 29. Mai - Abstimmung endet.
  • 30. Mai - Ergebnis wird präsentiert.
  • 1. Juni - Coding beginnt.
  • 31. August - Coding endet.
  • September - Projekte werden zusammen mit den Mentoren begutachtet.
  • Oktober - Programmierer erfolgreicher Projekte werden entlohnt (u.U. wird zur Halbzeit des Projekts bereits die Hälfte ausgezahlt).
Alle, die Haiku schon lange finanziell unterstützen wollten, sich bisher aber mangels konkreter Einsatzzwecke nicht dazu entschließen konnten, haben jetzt eine hervorragende Gelegenheit.

Bis zum 22. 29. Mai 2008 werden Spenden über PayPal angenommen.

Mittwoch, 14. Mai 2008

BeOS/Haiku Coder gesucht

Im Februar diesen Jahres hat TuneTracker Systems den Sourcecode und die Rechte an SampleStudio, ein 2-Kanal Audio Editor, erworben.
Seitdem wird immer noch ein fähiger Programmierer gesucht, der der Anwendung den letzten Schliff verpasst. Insbesondere soll die Performance optimiert, eine Aufnahme-Funktion implementiert und die Wahl der In- und Output-Hardware ermöglicht werden.

Wer die nötigen MediaKit Kenntnisse besitzt, etwas Zeit hat und schon immer mal für Geld an BeOS/Haiku Software arbeiten wollte, kann sich bei Dane Scott unter tunetracker ät bayland pünkt net melden.

Dienstag, 6. Mai 2008

Die Drei von den HaikuPorts

HaikuNews hat ein recht ausführliches Interview mit den drei Hauptakteuren geführt, die z.Zt. das Projekt HaikuPorts betreiben: Brecht Machiels, Andreas Färber und Scott McCreary.
[Ich gebe das Interview hier nur grob zusammengefasst wieder und hab die für meinen Geschmack zu spezifischen Fragen aus Zeitmangel unterschlagen... :) Ist eigentlich eher eine Antwort auf die Frage "Was ist HaikuPorts?"]


HaikuPorts soll eine zentrale Sammelstelle für Software bieten, die auf Haiku portiert wurde. Es handelt sich um ein Trac System mit einem Subversion Backend in dem jeder Port mit den entsprechenden Haiku-spezifischen Patches abgelegt ist. Neben der Trac Webseite mit Wiki existiert eine Mailingliste. Das Tool BePorter soll das runterladen, patchen und compilieren von Sourcecode erleichtern.

Brecht Machiels, ehemaliger AmigaOS User, gründete HaikuPorts (damals BePorts) Ende 2007. Während er Subversion auf BeOS portieren wollte, bekam er mit dass es zwar viel Wissen zum Portieren von Software auf BeOS gab, dieses jedoch (falls überhaupt festgehalten) überall verteilt war. Er startete HaikuPorts damit Portierungen an einer zentralen Stelle koordiniert und dokumentiert werden können.
Dann fehlte ihm jedoch die Zeit das Projekt weiter voran zu treiben und erst als Andreas und Scott kürzlich dazu stießen, werden wieder Fortschritte gemacht.

Andreas beschreibt, wie ein Port bei HaikuPorts im groben abläuft:

  • Für das neue Projekt wird eine Wiki Seite in der entsprechenden Kategorie erstellt.
  • Der aktuelle stabile Sourcecode des Projekts wird heruntergeladen.
  • Ein erster Kompilierversuch folgt, wenn nötig spiegelt man mittels --build=i586-pc-beos eine BeOS Umgebung vor.
  • Klappt das nicht holt man sich den aktuellsten evtl. instabilen Code des Projekts und baut einige Standardanpassungen ein.
  • Jeder dieser Schritte, was wann und wie etwas beim konfigurieren/kompilieren schief ging und was man dagegen getan hat, wird penibel dokumentiert. Dadurch können andere Entwickler (oder man selbst irgendwann später) alles genau nachvollziehen.
  • Die Änderungen und Patches werden immer in HaikuPorts' SVN übertragen, damit sie andere überprüfen oder mitarbeiten können.
  • Wenn ein Port erstmal kompiliert werden kann, werden Tests gefahren ob alles funktioniert und evtl. Fehler beseitigt. Auch das wird wieder dokumentiert.
  • Schließlich werden Patches erstellt, die an das entsprechende Projekt übergeben werden und dort einfließen können.
Manchmal verläuft das geradlinig und unkompliziert, dann wieder ist Kooperation mit Haiku Entwicklern gefragt, um Bugs zu beseitigen oder benötigte Features zu implementieren.

Während HaikuPorts wächst, steigt die Zahl zu dokumentierender und fertig gestellter Ports. All das benötigt natürlich Zeit. Daher sind alle, die mithelfen wollen gerne willkommen!
Die Roadmap enthält als Milestone M1 eine Reihe der meistverbreiteten Anwendungen und Bibliotheken. Dazu kommt ein weiterer, noch wichtigerer, Milestone mit den Ports, die zum Self-Hosting (Haiku-Programmierung unter Haiku) benötigt werden.