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) |