On Thu, 07 Apr 2011, David Paleino wrote: > "Only" those installing executables in these directories:
I know, I do not have stats but I expect this to be a very important percentage of packages. > Unfortunately, I have to remove and re-create all the symlinks upon trigger > activation: in fact, only the directory name is being passed (/usr/bin); if > my postinst had passed the file name activating the trigger (/usr/bin/foo); it > would really be much faster. I know the limitations of triggers. :-) Still, you can do better than recreating everything each time. Like scanning the non-installed completion files, extract some metadata listing which program's completion this file provide, and verify if you can find the binary before deciding to install it. Removing completion for uninstalled packages is not important to have in real-time, you can do it in a weekly cron or something like this. > > If file triggers could also specify the --no-await option that > > dpkg-triggers supports, things might be different. > > That would be great; ideas how to do it? Extend the syntax of the triggers file and patch dpkg to support it. > > But in the current state, I think it's a bad idea to use file triggers > > in your case. > > A named trigger isn't better in any case, I believe. Indeed, they are of no use. > > You'd better use some apt hook to do the task you envision. A file > > trigger that is activated for a majority of package installation is > > probably better dealt with such a solution. > > Which hook would you suggest? > > Reading apt.conf(5), I find: Dpkg::Pre-Invoke, Dpkg::Post-Invoke and > Dpkg::Pre-Install-Pkgs. I think the first two are run at each unpacking (thus > are unsuitable to me, it would be much slower than now), and the latter is > _before_ installing packages. > Why there's no Dpkg::Post-Install-Pkgs? :) Pre/Post-Invoke are called (as their name suggest it) before and after dpkg has been called no matter the operation requested (unpack, configure). I was indeed thinking there was some sort of hook that would run after apt had completed its work but it's not the case (you could still ask APT developers if they can do it). Still I think using Dpkg::Post-Invoke with an update-bash-completion program intelligent enough to not do useless work is preferable over using a file trigger given the current limitations of triggers. File triggers are useful to replace calls to update-foo in postinst but in your case the data is already centralized in a package and you have the somewhat oppposite problem of knowing which of those files are useful. Cheers, -- Raphaël Hertzog ◈ Debian Developer Follow my Debian News ▶ http://RaphaelHertzog.com (English) ▶ http://RaphaelHertzog.fr (Français) -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20110407191733.gd6...@rivendell.home.ouaza.com