# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id$
-#
# Source function library and configuration
. /etc/plc.d/functions
# Temporarily replace /dev/random with /dev/urandom to
# avoid running out of entropy.
- rm -f /dev/random
- # 1 9 is /dev/urandom
- mknod /dev/random c 1 9
- # sometimes mknod fails within an improperly setup vserver
+ # (1 9 is /dev/urandom, 1 8 is /dev/random)
+ #
+ # a former version of this was rm'ing /dev/random and re-creating it afterwards
+ # however in 1.0.4 libvirt won't allow the use of mknod at all, so let's work around that
+ # by moving things around instead
+ #
+ # if we find this file it's probably that a previous run has failed..
+ [ -f /dev/random.preserve ] && { echo "Unexpected file /dev/random.preserve - exiting" ; exit 1; }
+ mv -f /dev/random /dev/random.preserve
+ # doesn't hurt to check
+ check
+ ln -s /dev/urandom /dev/random
+ # again
check
gpg --homedir=$homedir --no-permission-warning --batch --no-tty --yes \
--gen-key <<EOF
%commit
EOF
check
- rm -f /dev/random
- mknod /dev/random c 1 8
+ mv -f /dev/random.preserve /dev/random
+ check
else
# Update GPG UID
MESSAGE=$"Updating GPG keys"