= Work-in-Progress: 2011 = While Google has not announced plans for Google Summer of Code 2011, here are some initial ideas. * Filesystems: general improvements * ReiserFS: write support * Ext: Ext4 features * BTRFS, UFS2, ZFS: Read (& Write) support Haiku has great support for its own filesystem, but most others are only available read-only, or not at all. It is way better for interoperability with other systems to be able to read and write to these disks. * USB 3.0 support * XHCI implementation Haiku has already some support for UHCI, OHCI and EHCI. Requirements: acquiring a PCI-e USB 3.0 board (30$). * USB Video (UVC) This driver will support higher end webcams and other devices. This should be designed with portability to other OSes, which encourages the re-use of coding efforts for both Haiku and non-Haiku operating systems. Requirements: owning an UVC webcam. * AV/1394 support Our Firewire stack supports DV receiving, but not controlling the A/V device (ie play/stop). This requires to modify the Firewire stack for FCP frame support. See AV/C Digital Interface Command Set General Specification for reference. Skill set: kernel development, API design, general C/C++, userland development Requirements: a DV camera, a machine with a Firewire port. * [http://buildbot.net BuildBot] Currently Haiku uses an in-house continuous integration solution [http://dev.osdrawer.net/projects/haikubuildomatic/repository/show/branches/rewrite2 Haiku Build-O-Matic]. Implementing a BuildBot would provide numerous features over Build-O-Matic. Some basic requirements would be to supporting building the various aspects of Haiku from source on numerous platforms (FreeBSD, linux based OS's, Haiku, ...,) [http://www.freelists.org/post/haiku/ATTN-Python-Developers-opportunities-for-contributing related thread] Requirements: Python * Preflet GUI refactoring Several preference applications (aka preflets) could be redesigned. This includes (but not limited to) 1. combining Keymap and Keyboard 1. #6983 Printer 1. Shortcuts 1. Network (todo, link to work-in-progress preflet) 1. ... * Trac Plugin: "Test and Commit Patch" functionality Several developers have requested the ability to simply press a button that would trigger an automatic system to test and (conditionally commit) a supplied patch. Requirements: Python * VirtualBox port to Haiku A port of VirtualBox to Haiku, would allow developers and users to run another operating system within Haiku. [http://article.gmane.org/gmane.comp.emulators.virtualbox.devel/3384 Preliminary VirtualBox port to Haiku] * Enhancements for Virtualization Software Haiku works nicely both on real hardware and virtualized machines, but lacks most of the so-called "guest additions" that allows smoother integration with the host. This include changing resolution on window resize, mouse automatically switching from host to guest and back, file sharing. Write such a guest addition package for virtualbox or/and vmware * TTY Layer The TTY layer is needed for proper serial port support in Haiku. Until now the serial port was reserved for kernel debugging, but it is now time for proper userland support. Rewrite the API that was available in BeOS R5, and make sure it can be used with a real serial port. USB to serial converter may or may not be included. Tickets: #35 #3232 Requirements: kernel, and driver development * Fix and improve Haiku's mail system (which tickets exactly has yet to be decided). Haiku features an integrated mail management system allowing to manage your mail using Tracker, the file explorer. This system needs some improvements and updates. * Gallium3d Gallium3d is a software stack allowing faster hardware acceleration in a more cross-platform way. Some work was started to make it run on Haiku, but it lacks a kernel module for handling DRM, so the drivers upper in the stack can plug to it. Write such a module and bring 3d acceleration to Haiku. * Language bindings in SWIG * Python * perl * ... Scripting languages should be able to use the system API directly. Python and Perl have an object-oriented approach that would allow using the Be API and using the full power of the Be API right inside your scripts. This includes displaying windows, but also accessing the locale kit, or other native stuff. In previous years, it has been discussed to utilize a dual-layer approach: First to use SWIG to generate uniform bindings and then to have a more natural syntax that binds to the SWIG bindings. * Updating AbiWord Even though an [http://www.abisource.com/ older AbiWord port] is being hosted at [http://dev.osdrawer.net OSDrawer : AbiWord Project Page], the AbiWord project would prefer the port to use their current sources. The student is responsible for determining which aspects of this project to persue. ---- = Previous Years = == 2010 == See official page here: [http://www.haiku-os.org/community/gsoc/2010/ideas] [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=26 Last work-in-progress page for 2010 ] == 2009 == See official page here: [http://www.haiku-os.org/community/gsoc/2009/ideas] [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=7 Last work-in-progress page for 2009]