Hi list Jakob and I have been going back and forth about where groups handlings should be, in backend or frontend, and how alpm interface should look like. It turns out Jakob has several arguments for the group backend solution, and he spent quite some time working on it, improving and fixing things. This solution fixes several flaws that pacman currently has without drastically changing the code. There are just two disappointing aspects that Jakob covered below in bad news. Also there are still some points I would like to see improved, but more aesthetic than real issues, so low priority. I was going to cover them here, but this will just confuse things and would deserve its own topic/discussion. Jakob Gruber wrote:
Hi Xavier,
here is yet another revision of the group patches.
http://github.com/schuay/pacman-arch/commits/group_backend
This time it should be easier to see what is actually being done. The commit messages aren't final, I can elaborate on them if the patches are accepted.
Changes from the last time (as far as I can remember):
* use sync_pkg directly for group members and explicitly check if package is ignored * use a temporary alpm_list_t instead of a temporary pmgrp_t * altered few more function signatures to use 'const char *' instead of 'char *' * skip to next repo if current repo/group contains only packages already processed in another repo
Now to the bad news:
The repo name ( = db name) is passed to the 'Install whole content from ...' callback but not to 'group ....:: Members: pkg1 pkg2'. This results in the following output: http://pastebin.com/LpG0MKSc This is a little inconsistent, but it's still clear what's going on IMO. What do you think, is this acceptable?
Found out yesterday evening that clyde handles new callback values rather ungracefully. It aborts when it encounters unknown callback enum values (see http://github.com/Kiwi/clyde/blob/master//lualpm.c#L2032). It does the same for all callback enums, pmtransevt, pmloglevel, ... I opened an issue on their github site about it. This sucks, but I think it's a bad decision by the clyde developers and should be changed by them.
Cheers, Jakob