Freitag, 29. März 2013

Vertragsarbeit an Packagemanager begonnen

Etwas verzögert durch Restarbeiten für ihren letzten Auftraggeber, haben Ingo und Oliver jetzt ihre durch Haiku Inc. gesponserte Arbeit am Packagemanager begonnen. Die letzte große Hürde für Haikus Beta-Phase wird so mit 2 x 320 Stunden angegangen. Da die erwähnten Restarbeiten noch nicht ganz abgeschlossen sind, ist es allerdings möglich, dass diese vereinbarte Vertragszeit etwas länger als die angepeilten 2 Monate gestreckt werden wird.

In einem ersten Blogeintrag gibt Ingo einen groben Überblick über die erste Planung der beiden.

Zuerst werden sie sich auf das Erzeugen von Packages konzentrieren. Dazu müssen die BEP Build-Rezepte so angepasst, dass am Ende die zum Bauen von Haiku benötigten Packages rauspurzeln.
Danach kann Ingo seine Arbeit an libsolv abschließen, mit der Abhängigkeiten unter den Paketen gelöst werden.
Oliver nimmt derweil haikuporter und das BEP-Format unter die Lupe. Haiku soll von den Metadaten anderer opensource Projekte profitieren, um Abhängigkeiten von Paketen, aber auch deren Buildfeatures und Bugs zu erkennen. Nach einer Analyse von MacPorts, pkgsrc, Gentoo-Portage und anderen Kandidaten, lassen sich die Gentoo-Portage EBuild Dateien dafür am einfachsten nutzen.
Ggf. werden die BEP Dateien von Python zu Shellscripts oder C++ umgewandelt. Dadurch kann man sich das Parsen sparen und eleminiert das komplexe Python-System, dass mehr Probleme bereiten kann als es zur Zeit Vorteile bringt.

Wenn haikuporter erstmal anhand eines Packagenamens das Paket komplett mit seinen Abhängigkeiten bauen kann, kann man aus mehreren Paketen auch automatisch ein Repository generieren. Ist das geschafft, gehts an die Repository-Infrastruktur, verbesserte Features zur Laufzeit (z. B. Packages installieren und deinstallieren) und die Anpassungen für die Nutzung des Packagemanagements in Haikus Buildsystem.

Wer stets informiert sein möchte, sollte die Blogs von Ingo und Oliver im Auge behalten, ebenso das PackageManagement Wiki.
Der Code lässt sich in ihren GitHub Repos (Ingo, Oliver) verfolgen und im HaikuPorts Repository befinden sich ebenfalls "package-management" Branches unter "haikuporter" und "haikuports".

Endlich NFSv4 integriert

Das "Google Summer of Code 2012" Projekt von Paweł Dziepak wurde jetzt offiziell in Haiku integriert. Paweł hat seit letztem Sommer fleißig in seinem GitHub Branch weiter an NFSv4 gearbeitet und diverse Verbesserungen eingebaut und Fehler behoben. Mittlerweile hat Paweł (wie übrigends alle fünf weiterhin aktiven GSoC Studenten des letzten Jahrs!) Schreibrechte für Haikus "Mainbranch" erhalten. So konnte er die Früchte seiner Arbeit gleich direkt unter eigenen Namen reinstellen.

Um das Netzwerk-Dateisystem selbst einmal ausprobieren zu können, muss man ein aktuelles Nightly Image installieren. Dannach lässt sich das Netzlaufwerk im Terminal per

mount -t nfs4 -p "server_address:path flags" directory

einhängen. Da das NFSv4 Protokoll nicht direkt dafür ausgelegt ist, werden Haikus erweiterte Attribute zur Zeit leider noch nicht unterstützt. Weitere Infos gibt's in Pawełs Blog.

Paweł macht momentan übrigends Urlaub von NFS und wendet sich dafür Sicherheitsaspekten in Haiku zu. In seinem ASLR Branch experimentiert er mit randomisierten Adressräumen und ähnlichen Sicherheitsvorkehrungen, die das System weniger berechenbar für Angriffe machen.