This week is my last for SoC this summer, so unless I do something
groundbreaking tomorrow, this will be my last status report.  I was
hoping to be able to show off a working server with Ingenue running on
it by this time, but I'm still waiting for all the difficulties with
getting a root-access server to get ironed out.  The project is in
pretty good shape, though.  I have one important change to make to the
frontend tomorrow (just moving some options from the middle of the
config process where they don't belong to the end) and some minuscule
tweaks to the database structure to allow for better extendibility in
the future.  Some usage or hacking instructions are also on the to-do
list.  For anyone interested in testing it out on their own computer
or looking at the source code, I've finally created an ebuild [0].
I'm putting some basic usage instructions at the end of this message.
My biggest accomplishment of late was adapting the backend to work in
stages such that if it is stopped at any time, it will automatically
start where it left off next time it is started (except for places
where some command fails if it has already been run - fixing that is
on the to-do list).  This is incredibly helpful when troubleshooting
things later in the build process since I can skip up to 10 minutes of
building prior to the point where problems happen.  The status page is
also a little more detailed now as it shows approximately how much of
the build process has been completed.
I also implemented a handful of new options so that most of the parts
of the Gentoo install guide that seem worthwhile (and possible) to me
have been implemented [1].  I also created an update script to help
keeping stage3 tarballs and other external files up to date (currently
only FTP is supported since it makes it easy to get a directory
listing along with file size and mtime).  I fixed quite a large number
of bugs that crept into the backend while I was working on other parts
of the project.  One of the most important things I spent my time on
this week was quality of code.  I moved a lot of code from place to
place to minimize repeating the same code and to make the flow more
clear.  With a few exceptions, I think the code is in great shape for
continued development.  Hopefully I'll be able to deploy it soon and
people will be able to make good use of it.  Towards that end, I had
great success in building an image which, with around a dozen
commands, I was able to install on a qemu machine and run Ingenue on
to replicate itself again.
Lastly, I'd like to thank my mentor killerx, along with all the others
who have helped me with this project - solar, zmedico, robbat2,
agaffney, and others.  I've really enjoyed working with the Gentoo
community (though I had to break the brief habit of reading everything
that went by on #gentoo since it caused something of a skydive in my
productivity).  I'm looking forward to continuing to improve Ingenue
and otherwise contribute to Gentoo once I get adjusted to college life
a little bit (my next non-Ingenue project is getting
pam-face-authentication [2] into portage - the ebuild is pretty
outdated).

[0] 
http://git.overlays.gentoo.org/gitweb/?p=proj/ingenue.git;a=blob_plain;f=ingenue-9999.ebuild;hb=HEAD
[1] 
http://git.overlays.gentoo.org/gitweb/?p=proj/ingenue.git;a=blob_plain;f=gentoo-steps;hb=HEAD
[2] http://code.google.com/p/pam-face-authentication/

1) Edit shared/config.php (the ebuild installs in /usr/share/ingenue -
probably not the right place, but I'll fix that when I figure out what
the right place is) to your liking.  It's fairly well commented
already and most things can be left commented to use intelligent
defaults.
2) Make sure that you have a Gentoo packages directory (with Packages
file) at the location specified in the config file (you can offer more
than one profile by putting the repos (or symlinking them) as
subdirectories of the directory in the config - it searches
recursively for Packages files)
3) Configure cache/conf to download stage3 images for the appropriate
archs (follow the example of the entries already there) - also install
CDs if you want them and a portage snapshot unless you want to spend a
long time copying your local portage tree file-by-file
4) Run setup.php and update_cache.php
5) Configure your web server to make the frontend directory available
and navigate to it (currently, it is necessary to use Apache with
mod_rewrite and htaccess files enabled or in some other way redirect
all traffic to index.php)
6) Run update_cache.php to update to newer stage3's, CDs, portage
snapshots (it checks filename/modtime to avoid downloading the same
versions repeatedly)
7) Whenever your package repos are updated, run update_gentoo_profiles
to update the database with the changes
8) Report bugs! (I hope there aren't too many, but it's been somewhat
difficult to test comprehensively)

Reply via email to