should readahead allow generic paths?

Steve Grubb sgrubb at redhat.com
Thu Oct 11 13:50:55 UTC 2007


On Thursday 11 October 2007 03:59:52 Jon Masters wrote:
> Seems to me that it'd be more useful if the readahead package
> configuration files (default/later) could use wildcards for path
> components such as firefox, python, etc. (so that you don't have quite
> the disconnect/lock-step requirement between these packages).

I've been working on a tool that scans certain important paths looking for any 
file that is unpackaged. What I've found is that a lot of files get installed 
where the package creates the directory structure, but does not actually own 
it. IOW, a packager will do:

%config(noreplace) %attr(640,root,root) /etc/audit/auditd.conf

but DOES NOT do:

%attr(750,root,root) %dir /etc/audit

So, when the package is upgraded later by another version or uninstalled, you 
have *many* files laying around and dead-end directories. Here's a SMALL 
sample of a typical rawhide system:

/usr/lib/gtk is not owned by a package
/usr/lib/gtk/themes is not owned by a package
/usr/lib/gtk/themes/engines is not owned by a package
/usr/lib/pwlib is not owned by a package
/usr/lib/pwlib/codecs is not owned by a package 
/usr/lib/pwlib/codecs/audio is not owned by a package
/usr/lib/mozilla-1.7.8 is not owned by a package
/usr/lib/mozilla is not owned by a package
/usr/lib/mozilla/plugins is not owned by a package
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi is not owned by a 
package
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto is not owned by 
a package
/usr/lib/perl5/vendor_perl/5.8.8/auto is not owned by a package
/usr/lib/perl5/vendor_perl/5.8.6/HTML is not owned by a package
/usr/lib/perl5/vendor_perl/5.8.6/XML is not owned by a package
/usr/lib/samba is not owned by a package
/usr/lib/samba/auth is not owned by a package
/usr/lib64/gimp/2.0/interpreters is not owned by a package
/usr/lib64/mozilla-1.7.12 is not owned by a package
/usr/lib64/mozilla-1.7.12/chrome is not owned by a package
/usr/lib64/mozilla-1.7.12/chrome/overlayinfo is not owned by a package
/usr/lib64/mozilla-1.7.12/chrome/overlayinfo/messenger is not owned by a 
package
/usr/lib64/mozilla-1.7.12/chrome/overlayinfo/messenger/content is not owned by 
a package
/usr/lib64/mozilla-1.7.12/chrome/overlayinfo/messenger/content/overlays.rdf is 
not owned by a package
/usr/lib64/X11/app-defaults is not owned by a package
/usr/lib64/X11/locale is not owned by a package
/usr/lib64/mozilla-1.7.11 is not owned by a package
/usr/lib64/mozilla-1.7.11/chrome is not owned by a package
/usr/lib64/mozilla-1.7.11/chrome/overlayinfo is not owned by a package
/usr/lib64/mozilla-1.7.11/chrome/overlayinfo/messenger is not owned by a 
package
/usr/lib64/mozilla-1.7.11/chrome/overlayinfo/messenger/content is not owned by 
a package
/usr/lib64/mozilla-1.7.11/chrome/overlayinfo/messenger/content/overlays.rdf is 
not owned by a package
/usr/lib64/openoffice.org2.1 is not owned by a package
/usr/lib64/openoffice.org2.1/share is not owned by a package
/usr/lib64/libkdeinit_kview.so.#prelink#.n5F8Qg is not owned by a package
/usr/lib64/totem is not owned by a package
/usr/lib64/python2.4 is not owned by a package
/usr/lib64/python2.4/site-packages is not owned by a package
/usr/lib64/python2.4/site-packages/dbus is not owned by a package
/usr/lib64/python2.4/site-packages/gtk-2.0 is not owned by a package
/usr/lib64/python2.4/site-packages/gtk-2.0/gtk is not owned by a package
/usr/lib64/python2.4/site-packages/GMenuSimpleEditor is not owned by a package
/usr/lib64/ruby/1.8/x86_64-linux/io is not owned by a package
/usr/lib64/ruby/1.8/x86_64-linux/racc is not owned by a package
/usr/lib64/ruby/1.8/optparse is not owned by a package
/usr/lib64/ruby/1.8/dl is not owned by a package
/usr/lib64/gcj-4.1.0 is not owned by a package
/usr/lib64/gcj-4.1.0/classmap.db is not owned by a package
/usr/lib64/openoffice.org2.0 is not owned by a package
/usr/lib64/openoffice.org2.0/program is not owned by a package
/usr/lib64/python2.5/site-packages/dbus is not owned by a package
/usr/lib64/gcj-4.0.1 is not owned by a package 
/usr/lib64/gcj-4.0.1/classmap.db is not owned by a package
/usr/lib64/rhythmbox/plugins is not owned by a package 
/usr/lib64/gcj/xerces-j2 is not owned by a package
/usr/lib64/gcj/tomcat5 is not owned by a package
/usr/lib64/gcj/sinjdoc is not owned by a package
/usr/lib64/firefox-2.0.0.6/plugin-config is not owned by a package
/usr/lib64/mozilla-1.7.10 is not owned by a package
/usr/lib64/mozilla-1.7.10/chrome is not owned by a package
/usr/lib64/mozilla-1.7.10/chrome/overlayinfo is not owned by a package
/usr/lib64/mozilla-1.7.10/chrome/overlayinfo/messenger is not owned by a 
package
/usr/lib64/mozilla-1.7.10/chrome/overlayinfo/messenger/content is not owned by 
a package
/usr/lib64/mozilla-1.7.10/chrome/overlayinfo/messenger/content/overlays.rdf is 
not owned by a package
/usr/lib64/gtk-2.0/2.10.0/filesystems is not owned by a package
/usr/lib64/firefox-2.0.0.5 is not owned by a package
/usr/lib64/firefox-2.0.0.5/plugin-config is not owned by a package
/usr/lib64/sasl is not owned by a package
/usr/lib64/udev is not owned by a package
/usr/lib64/firefox-2.0.0.2 is not owned by a package
/usr/lib64/firefox-2.0.0.2/updates is not owned by a package
/usr/lib64/firefox-2.0.0.2/updates/0 is not owned by a package
/usr/lib64/gcj-4.1.1 is not owned by a package
/usr/lib64/gcj-4.1.1/classmap.db is not owned by a package

and perl5 is a very naughty package too. This is a small sample of all the 
unclaimed files/dirs on a system. So, if you have a wildcard, the search for 
the right file can go down a lot of deadends before it finds the right one. 
Then what if the wildcard picks something that is the wrong version?

I think one thing that would help performance overall is that packages must 
own all the directories they create and delete them when its uninstalled. 
This removes directory entries and improves search time.

-Steve




More information about the fedora-devel-list mailing list