Gentoo Archives: gentoo-dev

From: Rufiao <rufiao@×××.net>
To: gentoo-dev@g.o
Subject: [gentoo-dev] RFP: System to account users configurations
Date: Sun, 16 Jun 2002 15:16:01
Message-Id: 20020616171621.16b109e5.rufiao@gmx.net
1 As stated in bug #3778 (http://bugs.gentoo.org/show_bug.cgi?id=3778):
2
3 1. Rationale
4
5 This system is inspired by Debian's popularity-contest package
6 (http://packages.debian.org/stable/misc/popularity-contest.html) with some
7 important enhancements. The key idea is to provide means for the Gentoo
8 community to account the most used packages, hardware configurations, kernel
9 versions, compile flags and profiles. Additionaly, this system aims to
10 provide the following advantages:
11
12 - Allow the creation of CD layouts which include the most used packages for
13 each profile
14 - Allow the developers to investigate the most used configurations, and focus
15 on them
16 for setting priorities, documentation, standard kernel configurations, etc.
17 - Give some figures about the number of active users in the community
18
19 2. Description
20
21 The system comprises of 2 subsistems:
22
23 - A client-side system that runs periodically through cron to grab information
24 from users' configurations and post them to the server system trhough HTTP.
25 This system does not require any user intervention beyond the initial
26 configuration.
27
28 - A server-side system running on the gentoo.org domain capable of receiving
29 the information provided by the users, store them on a database and create
30 statistics with them. Also, it provides a web front-end to query the
31 database.
32
33 The following information will be processed by the system:
34
35 - Packages installed, including their versions (as in
36 `qpkg -nc -I -v` from the gentoolkit package)
37 - Flags in make.conf (as in
38 `egrep "^(USE|CHOST|CFLAGS|CXXFLAGS)" /etc/make.conf`)
39 - CPU info (as in `egrep "^(model name|cpu MHz)" /proc/cpuinfo`)
40 - System memory (as in `egrep "^MemTotal:" /proc/meminfo`)
41 - PCI devices (as in
42 `lspci | colrm 1 8 | sed 's/\(.*\)(.*/\1/'` from the pciutils package)
43 - USB devices (as in `lsusb | grep iProduct | colrm 1 28` from the
44 usbutils packages)
45 - Kernel version (as in `uname -r`)
46 - Profile being used (as in
47 `ls -ld /etc/make.profile | awk '{print $NF}' | awk -F/ '{print $NF}'`)
48
49 In the client side, the procedure to provide data for the system is the
50 following:
51
52 - User emerge the package, which:
53 - Sets a crontab entry to let the system run periodically, possibly
54 requiring user intervention to specify when the system should run
55 - Points to an URL (in the gentoo.org domain) for signup
56 - User go to the provided url, which requests the e-mail from the user, and
57 that the user transcribe a random 4-letters message shown as an image to
58 a text box. These requirements are used to ensure, as long as possible,
59 the autenticity of the data and to avoid automated signups
60 - The server-side system will e-mail the user with a key, which must be
61 placed in the config file
62 - To post the information to the server-side system, the client-side system
63 can use the proxy settings defined on /etc/make.conf
64 - In the first set of data the server-side system receives, it will e-mail
65 a message to the user to let him know the system is running fine
66
67 Note that it is not guaranteed the system will have internet connectivity
68 when it gets run. In this case, it may keep periodically checking in the
69 background for a route to the server.
70
71 The following vars can be set on the config file:
72
73 - Key: as discussed above
74 - Acknowlege flag: send an e-mail to the user every time a set of data from
75 him is processed (defaults to false)