Gentoo Archives: gentoo-dev

From: Eitan Mosenkis <eitan@××××××××.net>
To: Gentoo SoC <gentoo-soc@l.g.o>, Gentoo Dev <gentoo-dev@l.g.o>
Subject: [gentoo-dev] Re: [GSoC status] Web-based image builder
Date: Thu, 13 Aug 2009 23:44:10
Message-Id: 36df18050908131643u51b7be2dt232cf4c82aa865ea@mail.gmail.com
In Reply to: [gentoo-dev] Re: [GSoC status] Web-based image builder by Eitan Mosenkis
1 This week is my last for SoC this summer, so unless I do something
2 groundbreaking tomorrow, this will be my last status report. I was
3 hoping to be able to show off a working server with Ingenue running on
4 it by this time, but I'm still waiting for all the difficulties with
5 getting a root-access server to get ironed out. The project is in
6 pretty good shape, though. I have one important change to make to the
7 frontend tomorrow (just moving some options from the middle of the
8 config process where they don't belong to the end) and some minuscule
9 tweaks to the database structure to allow for better extendibility in
10 the future. Some usage or hacking instructions are also on the to-do
11 list. For anyone interested in testing it out on their own computer
12 or looking at the source code, I've finally created an ebuild [0].
13 I'm putting some basic usage instructions at the end of this message.
14 My biggest accomplishment of late was adapting the backend to work in
15 stages such that if it is stopped at any time, it will automatically
16 start where it left off next time it is started (except for places
17 where some command fails if it has already been run - fixing that is
18 on the to-do list). This is incredibly helpful when troubleshooting
19 things later in the build process since I can skip up to 10 minutes of
20 building prior to the point where problems happen. The status page is
21 also a little more detailed now as it shows approximately how much of
22 the build process has been completed.
23 I also implemented a handful of new options so that most of the parts
24 of the Gentoo install guide that seem worthwhile (and possible) to me
25 have been implemented [1]. I also created an update script to help
26 keeping stage3 tarballs and other external files up to date (currently
27 only FTP is supported since it makes it easy to get a directory
28 listing along with file size and mtime). I fixed quite a large number
29 of bugs that crept into the backend while I was working on other parts
30 of the project. One of the most important things I spent my time on
31 this week was quality of code. I moved a lot of code from place to
32 place to minimize repeating the same code and to make the flow more
33 clear. With a few exceptions, I think the code is in great shape for
34 continued development. Hopefully I'll be able to deploy it soon and
35 people will be able to make good use of it. Towards that end, I had
36 great success in building an image which, with around a dozen
37 commands, I was able to install on a qemu machine and run Ingenue on
38 to replicate itself again.
39 Lastly, I'd like to thank my mentor killerx, along with all the others
40 who have helped me with this project - solar, zmedico, robbat2,
41 agaffney, and others. I've really enjoyed working with the Gentoo
42 community (though I had to break the brief habit of reading everything
43 that went by on #gentoo since it caused something of a skydive in my
44 productivity). I'm looking forward to continuing to improve Ingenue
45 and otherwise contribute to Gentoo once I get adjusted to college life
46 a little bit (my next non-Ingenue project is getting
47 pam-face-authentication [2] into portage - the ebuild is pretty
48 outdated).
49
50 [0] http://git.overlays.gentoo.org/gitweb/?p=proj/ingenue.git;a=blob_plain;f=ingenue-9999.ebuild;hb=HEAD
51 [1] http://git.overlays.gentoo.org/gitweb/?p=proj/ingenue.git;a=blob_plain;f=gentoo-steps;hb=HEAD
52 [2] http://code.google.com/p/pam-face-authentication/
53
54 1) Edit shared/config.php (the ebuild installs in /usr/share/ingenue -
55 probably not the right place, but I'll fix that when I figure out what
56 the right place is) to your liking. It's fairly well commented
57 already and most things can be left commented to use intelligent
58 defaults.
59 2) Make sure that you have a Gentoo packages directory (with Packages
60 file) at the location specified in the config file (you can offer more
61 than one profile by putting the repos (or symlinking them) as
62 subdirectories of the directory in the config - it searches
63 recursively for Packages files)
64 3) Configure cache/conf to download stage3 images for the appropriate
65 archs (follow the example of the entries already there) - also install
66 CDs if you want them and a portage snapshot unless you want to spend a
67 long time copying your local portage tree file-by-file
68 4) Run setup.php and update_cache.php
69 5) Configure your web server to make the frontend directory available
70 and navigate to it (currently, it is necessary to use Apache with
71 mod_rewrite and htaccess files enabled or in some other way redirect
72 all traffic to index.php)
73 6) Run update_cache.php to update to newer stage3's, CDs, portage
74 snapshots (it checks filename/modtime to avoid downloading the same
75 versions repeatedly)
76 7) Whenever your package repos are updated, run update_gentoo_profiles
77 to update the database with the changes
78 8) Report bugs! (I hope there aren't too many, but it's been somewhat
79 difficult to test comprehensively)