On Mon, Jan 31, 2011 at 4:45 AM, Marc - A. Dahlhaus <mad@wol.de> wrote:
Am Montag, den 31.01.2011, 02:07 +0100 schrieb Daniel Mendler:
Hi
Hello,
I added simple hooks support to pacman yesterday. Unfortunately I have not seen before that Sascha Kruse is already working on it. My concept is simpler and similar to the scriptlets. You might want to take a look at it even though.
My work up to this point was pretty much useless anyway. So I'll abandon my work for now and wait how this evolves.
It wasn't my intentions to stop your efforts here. I just didn't want to throw away my patches, so I sent them here. Because we both want hooks we should combine our work :) The problem is that the patches are a bit different. So at first we should discuss how hooks should look like.
I like the concept with the shell-functions used in the install-scriptlets, so I used this scheme. Furthermore I think the hooks should be simple, this means only on a per-package (implemented in my patch) and per-transaction base. All other cases can be handled on the script-level (filtering for files, package names, etc). Activating a patch is as simple as copying a file to /etc/pacman.d/hooks.
Did it mostly about the same way:
I added a /usr/share/pacman/hook.d dir and installed hook scripts there.
I added some helper functions to a /usr/share/pacman/hook.sh and sourced that file to the environment of the install scriptlets. I think i'll change this to simple "run-hook scriptname" and "trans-hook scriptname" bash scripts, because the including is not needed...
I also added a /var/lib/packman/hook dir and touched empty files in there, that have the same name as the hook script to run for transaction hooks and a call to "/usr/share/pacman/hook.sh transaction" was added to /lib/libalpm/util.c after the callout to ldconfig which does a simple walk over the touched empty files in the /var/lib/packman/hook dir which fires up the corresponding hook and removes the empty file after that.
It's based on pacman 3.3 and i have a forward port to 3.4 already on my agenda, if someone cares i can share the patches after that.
IIRC there was a solution to run hooks on the basis of installed files (names or pathes) wanted / proposed last time we discussed triggers / hooks for pacman here. I'll try to dig up the thread in the archive...
The per-transaction hooks are not yet in my patch, but this is easy to add (just add runhooks calls). The nice thing is that the per-transaction-hooks can replace the manual ldconfig runs for example.
I am very interested in opinions of the development team!
So seems like many people have been hacking in private on this one. It is good that people are interested, bad that it is coming up now. We need to get a 3.5 out the door and right now my time is better spent looking at issues related to and getting ready for a release of that. These patches/work items will get a look in good time, but for now, they are simmering and waiting for 3.6.X development to start (updated today): https://wiki.archlinux.org/index.php/Pacman_Roadmap -Dan