Gentoo Archives: gentoo-qa

From: Stanislav Ochotnicky <sochotnicky@×××××.com>
To: gentoo-qa@l.g.o
Cc: gentoo-soc@l.g.o
Subject: [gentoo-qa] Re: [GSoC-status] Collagen - database schema and further changes
Date: Fri, 03 Jul 2009 15:42:19
Message-Id: 20090703154127.GA32664@w0rm
In Reply to: [gentoo-qa] [GSoC-status] Collagen - database schema and further changes by Stanislav Ochotnicky
I decided to post my next status report as reply to my previous post, so
that no unnecessary threads are created. 

Over the course of last week bulk of my work was around installing
dependencies, logging and fixing bugs in chroot creation script.

Installing dependencies is a bit hacky right now, since I am using
emerge.emerge_main() to install them. This means that I don't have to
repeat work of emerge and search dep tree etc etc. 

I'll show this simple hack on following ascii-non-art package hierarchy:

 |  | ->C2

Package A is the one we want to install, B1 and B2 are its dependencies
(we can read them from ebuild of package A). We could walk the
hierarchy, but it's may not be necessary since we were asked to only
try and compile package A. Therefore to install package B1 and B2 we
actually ask emerge (and it will resolve deps for us). Then we install
package A ourselves (by using portage.doebuild). If it fails then 
something is probably wrong in ebuild for package A.

Creating of chroot environment for package installation had a lot of
bugfixes too. It's still not as good as it should be and there is always 
need to manually "synchronize" internal version of emerge with that on
the outside of chroot. I now use a lot of -o bind for mounting
subdirectories in chroot, this is speeding up stuff quite a bit.

As far as logging is concened I am using standard logging python module,
nothing fancy. But it works, and compile machines can now report errors
in more human-readable form, not just build.log. For example:
"Unable to emerge package A-1.2.3 with deps B1-2.0,B2-2.0"

I also had to add data that are transferred between matchbox and
tinderboxes since I realized that otherwise I would not be able to fill
information that need to be present when inserting data into database.
This part is not finished yet, so tinderbox currently sends no data to
matchbox. This regression should be fixed today.

On that note, what I plan to work on during weekend/next week:
 * start inserting data into database (therefore actually create app->db
 * now that we really have functioning compilation/dep resolving try to
   install more packages. Therefore create list of 10-20 packages.
   dev-util/git (and its subversion[-dso] dep), postfix/sendmail blockers
   come to mind. If you have more ideas for combinations that usually
   cause problems, I'd love some input
 * Improve logging in a few places

Stanislav Ochotnicky
Working for Gentoo Linux
Implementing Tree-wide collision checking and provided files database

jabber: sochotnicky@×××××.com
icq: 74274152


Subject Author
[gentoo-qa] Re: [GSoC-status] Collagen - database schema and further changes Stanislav Ochotnicky <sochotnicky@×××××.com>