diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-06-13 13:05:44 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-06-13 13:05:44 -0400 |
commit | 5807f1de04aa7d3910e7f694e0d1e5613d8f5b41 (patch) | |
tree | 5d5c8a7b5aa4e572bd5b73d512aa95463e13ca80 /ikiwiki-mass-rebuild | |
parent | 340f2198183cf20cc08e9ad33f377d6a8fcec35b (diff) | |
download | ikiwiki-5807f1de04aa7d3910e7f694e0d1e5613d8f5b41.tar ikiwiki-5807f1de04aa7d3910e7f694e0d1e5613d8f5b41.tar.gz |
fix two build bugs
* ikiwiki-mass-rebuild: Make group list comparison more robust.
* search: Work around xapian bug #486138 by only stemming locales
in a whitelist.
Diffstat (limited to 'ikiwiki-mass-rebuild')
-rwxr-xr-x | ikiwiki-mass-rebuild | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/ikiwiki-mass-rebuild b/ikiwiki-mass-rebuild index 3d0ca734c..f13033e7f 100755 --- a/ikiwiki-mass-rebuild +++ b/ikiwiki-mass-rebuild @@ -15,6 +15,23 @@ sub supplemental_groups { return @list; } +sub samelists { + my %a=map { $_ => 1 } split(' ', shift()); + my %b=map { $_ => 1 } split(' ', shift()); + + foreach my $i (keys %b) { + if (! exists $a{$i}) { + return 0; + } + } + foreach my $i (keys %a) { + if (! exists $b{$i}) { + return 0; + } + } + return 1; +} + sub processline { my $user=shift; my $setup=shift; @@ -34,7 +51,7 @@ sub processline { if (! $pid) { my ($uuid, $ugid) = (getpwnam($user))[2, 3]; my $grouplist=join(" ", $ugid, sort {$a <=> $b} $ugid, supplemental_groups($user)); - if (($)=$grouplist) ne $grouplist) { + if (! samelists(($)=$grouplist), $grouplist)) { die "failed to set egid $grouplist (got back $))"; } $(=$ugid; |