summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-05-31 14:36:15 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-05-31 14:37:05 -0400
commitc00890a2f033aa36dd5d88f8d3bdd5b7a927a687 (patch)
treefe46d5c4e33410cc4f10b5b86f1e20d2fa07a1e0
parent0a35e8a3525db58bf38cd6ffdc45c7baaae04dd8 (diff)
ikiwiki-mass-rebuild: under $! before setting $) to avoid strange errno issue
This fixes a problem sgran saw on alioth. Apparently nss-db sets errno to ENOENT as a side effect trying to read an optional file, but succeeds anyway. Then, somehow, errno remains set across the library calls made by $). So unset it first as a workaround; there's probably a nss-db, libc, and/or perl bug underneath.
-rw-r--r--debian/changelog1
-rwxr-xr-xikiwiki-mass-rebuild1
2 files changed, 2 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 86f1f036d..788d4b44a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
ikiwiki (2.49) UNRELEASED; urgency=low
* haiku: Generate valid xhtml.
+ * ikiwiki-mass-rebuild: under $! before setting $) to avoid strange errno issue
-- Joey Hess <joeyh@debian.org> Fri, 30 May 2008 19:08:54 -0400
diff --git a/ikiwiki-mass-rebuild b/ikiwiki-mass-rebuild
index 8cc6f45c1..0057beb4f 100755
--- a/ikiwiki-mass-rebuild
+++ b/ikiwiki-mass-rebuild
@@ -34,6 +34,7 @@ sub processline {
if (! $pid) {
my ($uuid, $ugid) = (getpwnam($user))[2, 3];
my $grouplist=join(" ", $ugid, $ugid, supplemental_groups($user));
+ undef $!;
$)=$grouplist;
if ($!) {
die "failed to set egid $grouplist: $!";