Google Summer of Code Application Applicant: Joseph Jezak I am the Gentoo/PowerPC team's operational lead and have been a developer for Gentoo for a year and a half. I wrote and maintain Xorgautoconfig for Gentoo, the tool for configuring X.org on PowerPC machines. I also maintain the Gentoo/PowerPC documentation (FAQ and Install guide) as well as moderating the Gentoo/PowerPC forums. Outside of Gentoo, I am one of the main reverse engineers for the bcm43xx drivers (bcm43xx.berlios.de) and currently maintain Mac-On-Linux. I will be attending the University of Pittsburgh in September where I was accepted into the PhD program for Computer Engineering. Project: Unified X.org configuration tool for Gentoo LiveCDs on multiple architectures Summary: Create a unified X.org configuration tool that's appropriate for use with Gentoo's LiveCDs across multiple architectures. It must be able to configure both binary modules (nvidia/ati) and open source DRI/DRM modules. Problem: Currently there are multiple, incompatible tools being used to configure X for a LiveCD, spread across multiple architectures and distros. As a simple example, ppc/ppc64 uses Xorgautoconfig which generates an X.org configuration from a template based on the current framebuffer settings. For x86/amd64, the situation is made more complex by including binary drivers and increased variability in hardware. Three tools (mkxf86config, x-setup and hwsetup) are currently used to create a working X LiveCD config. Simplifying the process would reduce errors and make for a better LiveCD environment. Commonly used existing tools: X --configure - Does not include support for binary drivers when available Xorgautoconfig - ppc/ppc64 specific, will not work on other hardware mkxf86config/hwsetup/x-setup - A little bit complex, needs to be modified for use with Gentoo xorgsetup - Interactive and not appropriate for the LiveCD xorgconfig - Interactive and not appropriate for the LiveCD Proposal: Create a tool that can reliably configure X.org for Gentoo LiveCD releases across multiple architectures. Special cases such as limited video memory and binary drivers will be taken into account. This will be beneficial to Gentoo by ensuring that the Gentoo LiveCD experience is equal across multiple architectures as well as providing a tool that can be used by users to help with a commonly difficult task. Things that need consideration: Investigate further the requirements for a Gentoo X.org configuration tool. What level of integration is required? Are there requirements not mentioned above? What other architectures would benefit from such a tool? (SPARC? HPPA?) What are their requirements? What architecture specific requirements must be included to ensure that a robust framework is created? Testing: As the author of Xorgautoconfig, I've had to test and troubleshoot programs like this before. Initially, I'll use the hardware I have available here. Once I have it working reliably with my hardware, I'll use the Gentoo Forums and the Gentoo IRC channels to find willing testers in the Gentoo community. Once it works well enough for these testers, the application is added into portage for more widespread testing. By testing in stages like this, I can insure that testing is done on as many different kinds of hardware as possible without overwhelming myself in the initial phases of development. Results: 1. A new tool that configures X for Gentoo on multiple architectures that is well documented and expandable to meet future requirements. 2. The tool will be usable from both a user's standpoint (generate an X config for use on an installed system) and from the LiveCD creator's standpoint (flexible enough to work on a multitude of systems) and can be integrated with Gentoo's init system without making the tool Gentoo specific. 3. Completed enough to be considered for inclusion in an experimental 2006.1 release. Timeline: Phase 1:(May 23 - May 31) Complete initial research, answer the "Things that need consideration" questions. Prepare initial framework, keeping in mind flexibility. Phase 2: (June 1 - June 21) Implement support for one architecture (ppc) to ensure the framework "works". Phase 3: (June 21 - June 26) Community testing of completed PowerPC portion begins. Fix bugs and take suggestions. Phase 4: (June 27 - August 1) Implement support for next architecture (x86/amd64) and integrate with Gentoo tools. Phase 5: (August 2 - August 7) Test with Gentoo 2006.1 LiveCD release candidates. Solicit further community testing. Phase 6: (August 8 - August 20) Implement changes suggested by community testing and usage with LiveCD release candidates.