ArchStats: An Arch Linux project

About ArchStats
Current Stats:

You can view the up-to-the-minute stats here: View Stats
       NOTE: To change the sorting option, you will need to re-click the desired button to "refresh" the page.

ArchStats is a purely voluntary project within the Arch Linux community to track the software and hardware of its users. Having this information will help the Arch Linux developers rank the software packages and system hardware according to what is most commonly used. For example, software packages that are widely installed will have a higher priority for updates/patches than software that is rarely installed within the Arch Linux user base. The same is true of hardware; kernel configurations, modules, and processor types will help the Arch Linux developers better serve their users.

Participation is easy. All you need to do is install the archstats client program, initially configure it, then set it up to run on system startup and/or as a cronjob. See the Installation instructions below for further details.

Once configured and invoked, archstats gathers hardware and software information about your local system (it only gathers the information you tell it to in the config file) and uploads that data to the ArchStats Server (the PHP script that generated the web page you are reading right now). The information you submit is done anonymously; your system information is not tied specifically to your local machine. The program does not send any confidential information and does not associate the information you submit with your IP address, hostname, or any other data that could be used to correlate your system information with your specific system.

Valid Clients:

The following is a list of valid clients that the ArchStats server will allow. You can view the ChangeLog if you're interested. Please note, if you are still using the Python client, you must upgrade to the new client. If you are upgrading, you should keep a copy of your original archstats.conf file and restore it after you upgrade so that you can maintain your current SYSTEM_UID.
    v4.0 - d391ca3d82a849ca0022dca02ee398bd
    v3.9 - f06312cb9463d06694fa6801d5110f3c
    v3.8 - ac51df64a8aef14141adaf6460881226
    v3.7 - 44554d0ef1bf80d00b4afe052e02a5af
    v3.6 - 17570830faf3b23ee63ce5734fffaf5f
    v3.5 - 16fcd4b0242d989b09578a0f8dcbed5f
    v3.4 - 9a00251d74e2cd4a4482993b5c91e1db
    v3.3 - 54ebfabb23a4aaead84e9135e674835e
    v3.2 - 722fefdb9ff9d684dddc678f1c2bd43f
    v3.1 - 5ae6d544680eaf3ed81ec5169ce5e3e1
    v3.0 - 6f4cafdb81c256bf10908c9499cc029c
  1. Install the archstats client program from the 'extra' repository with the command: pacman -Sy archstats. If you get an error about the package not being found in the sync db, edit your /etc/pacman.conf file and make sure that the 'extra' repository is uncommented.

  2. Initially configure the program by running: archstats -r. The default configuration file is located at /etc/archstats/archstats.conf. NOTE: You should consider adding a NoUpgrade option for this config file to your /etc/pacman.conf file to prevent it from being overwritten during upgrades.

    Alternatively, you can run the program as a regular user and use '-c' switch to specify an different config file (archstats -c /path/to/other/config_file -r).

  3. Review which stats and their respective values before uploading them to the server to ensure that you are comfortable with the data that you will be sharing with the community. You can do this by running the program in "dummy mode" by typing: archstats -d. You may want to pipe the output through a pager or redirect it to a file for closer inspection. NOTE: If you specified an alternate config file, make sure to specify it again here as well (archstats -c /path/to/other/config_file -d).

  4. Set it to run once a day as a cron job. Type: 'crontab -e' at root's shell prompt then add the following string to the end of the file:

      0 0 * * * /usr/bin/archstats -u

    This will execute the archstats program in "update" mode every midnight.

    Or, as above, you can run this as a regular user and use that user's crontab to update the stats making sure to specify the the correct config file.

  5. A startup script is also installed to /etc/rc.d/archstatsrc. You may want to consider adding the startup script to your DAEMONS line of your /etc/rc.conf file (make sure to add it after your network has been started) so that your stats are updated each time you power your system on/off. This method of updating your stats is more reliable if your system is not typically powered on at midnight.

    NOTE: If you are using an alternate config file, make sure to edit the archstatsrc script and direct it to the proper config file with the '-c' switch.

  6. A man page is also included that explains some of the other command-line switches.

Source Code:
  • archstats.phtml - The server code that the archstats client code connects to (the same code that generated the page you are reading) in order to update your local system's stats. The source code is made visible so that you can fully review it to satisfy any privacy/security concerns. NOTE: This code is provided for the curious and/or security conscious visitor - you do not need to download it in order to participate in the ArchStats Project.
  • kconfig.phps - This code was yanked from the main server code above. This script gets called once a day as a cronjob and produces a static HTML page 'kconfig.html' that gets included when a visitor access the Kernel Config page. This was done in an attempt to reduce the load on the server since this function was very hard on the server.
  • archstats.schema - The MySQL schema file describing the data storage for uploaded stats. Again, you do not need this code to participate, it is provided for reference purposes only.
  • archstats source - The source code for the archstats client. This code is also provided for reference only. To participate, please install the client code with the pacman utility as described above in the Installation section.

    NOTE: Be advised that if you download the source and compile it by hand, or use Arch's abs/makepkg utilities to recompile the client, it will not be able to upload your stats to the ArchStats server. The reason is that, for security purposes, the client and server exchange their respective md5sums when the client connects to the server, and when you recompile the client code, it will not retain the same md5sum as the client you install with pacman.

Client Warning Messages:
  • Server protocol failure - The client received an unexpected message from the ArchStats server. You should make sure you are running the most up-to-date client and try your update again.
  • Corrupted ArchStats client - You will only receive this error message if you are using an old or modified client. NOTE: If you have recompiled the archstats client locally, or used the makepkg utility, your client will receive this error message because your client's md5sum is different than the one the ArchStats server expects.
  • Rejected upload data - You will only see this error if the server detects HTML formatting characters in your upload data. If you feel that this error is incorrect, please submit a bug report and provide a copy of your archstats config file and the output of running in dummy mode.
  • Server mismatch detected - You will receive this message if there has been a change to the ArchStats Server since the the last time you ran your client. You may want to visit the ArchStats Project page to verify that MD5 and/or version number match what was reported in the error message.
Send comments/suggestions to: