On Sat, Sep 12, 2009 at 8:52 AM, Marc - A. Dahlhaus <[email protected]> wrote: > Xavier schrieb: >> >> On Sat, Sep 12, 2009 at 2:19 PM, Marc - A. Dahlhaus <[email protected]> wrote: >>> >>> I actually have read the text on the wiki and i know that there is a >>> transaction hook mentioned there. >>> >>> Did you think about the case where a common task could be wanted if there >>> isn't any filename based rule that could fire it up? >>> >>> An example could be that a package adds some functionality that is an >>> optional dependency for a job. If the dependency is not installed on the >>> jobs first execution than some thinks are not done. If the optional >>> dependency get installed at a later point it could ask for the trigger of >>> the dependency and activate the missing things. >>> >>> I argue that they should be differently handled because of situation >>> where >>> the "file X got installed so we need to start Y" will not work. >>> >> >> I read your message like 10 times, and I am not sure I understand what >> you are saying. >> Maybe if you could provide a more concrete example, it would be >> clearer for everyone :) >> > > I mean there are cases where you don't have a file that gets installed which > is related to the hook scripts original target of files. As the packager of > the package that provides hook X also lays down the rules on which hook X > get executed, there is no way for package Y if it wants to activate hook X > to do so if it isn't providing any file on which hook X gets executed. > > An example could be that you have a Hook for Apache httpd which reacts on > the filename filter "/etc/httpd/conf.d/*.conf" and does "apachectl -t && > apachectl -k restart" for example. > > Package mod_php for example installs /etc/httpd/conf.d/mod_php.conf and > everything is working fine, php gets activated and anyone could have a nice > day. > > But now the user adds php_apc to his system which in turn only installs the > file /etc/php.d/apc.ini to the system which would not activate php_apc for > mod_php because the httpd-restart hook doesn't get executed. > > In the trigger approach the trigger is like in the real world a thing you > have to push to activate it... > > The packager of php_apc knows if httpd is installed and mod_php is installed > then i have to trigger the httpd-restart hook for example. > > The packager of httpd could not know how the other packages that might relay > on his hook want to use it and what files should activate it. > > Might be a bad example because in a sysvinit world the httpd.init would do > that on "service httpd restart" but i think it makes my point very clear. > > A user could have a self created repo with some packages that should add > something by activating some hook from some upstream package... > You can't handle it this way. > > I think the trigger approach is useful even if it it requires activation > from the packagers side.
Hahahaha restarting daemons automatically... you haven't been here long, have you? :) Anyway, isn't it easy enough to just have the package install a dummy file somewhere that the hook is watching in order to trigger it? As long as this magical httpd-restart hook exists and is watching something like /var/lib/pacman/hooks/httpd-restart/, there is no problem. -Dan -Dan
