[Popcon-developers] Bug#622322: popularity-contest: popcon tries to access dpkg internal files and fails with multiarch: same packageso

Jonathan Nieder jrnieder at gmail.com
Wed Apr 20 21:10:58 UTC 2011


Hi,

Bill Allombert wrote:

> This is not possible: forking dpkg for all installed packages would be way to slow and 
> resource intensive. We need a better option.

It seems that what popularity-contest currently does is something like

 for each installed package:
	for each file in its files list which is under /bin, /sbin,
			/usr/bin, /usr/sbin, a subdirectory of /lib,
			or /usr/games, or is a .a, .h, .pm, .php,
			/boot/System.map- file, or is currently
			in use by a process:
		stat it;
		check its atime and ctime and store corresponding results.

In an ideal world on seeky disk drives, it would be better to read
.list files in the order stored on the file system.  Being lazy, I'll
just ask: does dpkg have an interface that could learn to do that in
the future?  That is, I'm imagining a command that will give a dump
like this:

	Package: foo
	Files:
	 file1
	 file2
	 file3
	 ...

	Package: bar
	Files:
	 file1
	 file2
	 file3
	 ....

Bonus points if this interface has an option to point to the file on
disk rather than asking the caller to take care of tracking down
diversions.

Of course alternative methods might be possible; I ask the above
because I am worried about the memory usage from
"dpkg-query -L $(list-all-packages)".





More information about the Popcon-developers mailing list