Monday, March 23, 2009

Googles Summer of Code Idea

Objective:
The objective of the project would be to make faster searches with paludis/protage by implementing a database of information and no longer requiring a tree sync to download everything from the tree at that time.

Abstract:
When Gentoo uses portage it uses 600M of disk space. This is extremly large and is slow to search. At 600M a machiene that is embedded each meg that is used will increase the cost of the device and right now solid state hard drives are expensive, so every meg that Gentoo makes the system cost more to devlop. The cache sync project would be my choice of projects to be on. I would want to first create a program that would call paludis (my current package manager, and portage should be an easy change). The program would keep a database of all packages, only the packages and versions currently in the portage tree and the overlay's. The program would do the dependency searching internally (this would me changed once the proof of concept was complete to be done by the package manager). The code that would do the dependency search would be then transfered into the respecitve program. The next step would be to download all the files needed by the build. This would include Manifest's, ebuilds, source, and all other files.

An idea I had would be to model the RPM system and have everything (including source) be included in a file, most likly a .tar.bz or another compressed file type. The source code would be uncomressed and put into a folder called "source".

The program would then take the data and place the ebuild's and other needed data in the /usr/portage directory. Here is where a discision must be made. I believe the source should be kept in /usr/portage/distfile to keep the the package management software consistant but it would be able to be changed if need be. After the PM's have run and installed the applications, the source would stay on the machine and so would the ebuilds. But once a new version is installed the old version would be purged from the file system to keep it as light as possible. I would do this because it keeps the size on a file system smaller and allows people to rebuild packages without having to re-downlaod source files.


Deliverables:

Complete source code, documentation, examples of use, patches made to other applications, files that would be used to transfer data, example database structure with explinations.

Timeline:
In the first two weeks I would have the structure of the way the database would be set up. I would then have to download the tree and write a batch file to purge the needless data from the files and add it to the database. I would then have to modify a dependency checker used by paludis to use my database structure. That should take about a month.
The next step would be to create the way the files that would hold ebuilds, patchs, source, etc. This should take about a week.
The next 2 weeks I would have to pick applications that I would want to test the system with, most likley building the files as I need them via another batch file.
The week would be to put the actual build section into the program, at first it would use another program to do the actual installation, but after bugs are worked out it would be merged into an existing program.
About a month of time to fix bugs and prepair the code to be implemented into a PM.


Bio:
My name is Ethan Hall, I am currenly a sophmore in the college of Computer and Electical Engineering at Purdue University. I am 20 years old, and was born in Akron, OH. My parents are currently located in VA, my mom has just started an alpacka farm, we will see how well that goes. In my free time I like to swing dance, mostly. I am currently the designer for Night Train swing dance club and have asperations for running for president. I love it, it gives me a way to relax, and mingle with people after a hard day of engineering homework. One of my goals every semester is to try to bring my friends into the swing club so they can experience it too. Lets face it, there is a reason that the sterotipical enigneer is a nerd who plays video games all the time. I also like to ride motorcycles but as of yet to own one, this is one of my summer goals. I am in a call at Purdue called EPICS and it has been a great way for me to get my feet wet with actual applications of of products. My team works for a meusiem called Imagination Station, and I personal am a co-team leader. The project I work on is called teh LASER maze, it teaches kids about LASER's reflaction and reflection. It has shown me some really cool things and make me relize why there are "warrently void if opened" stickers on everything. When one thing starts to work anther stops working. AHH agrivating.

Ethan Hall
ekhall@purdue.edu
ethankhall@purdue.edu

No comments:

Post a Comment

Followers