{
    use MIME::Base64 qw(encode_base64);

    my $service;
    my $rec;
    my $pw;

    # Enable InnoDB (needed for Bugzilla)
    $service = 'mysqld';

    $rec = $DB->get($service) || $DB->new_record($service, {type => 'service'});
    $rec->set_prop('InnoDB', 'enabled');

    # Store the Bugzilla password in the configuration database (if not already there)
    $service = 'bugzilla';

    $rec = $DB->get($service) || $DB->new_record($service, {type => 'service'});

    $pw = $rec->prop('DbPassword');
#    return "" if $pw;

    $adminpw = $rec->prop('AdminPassword');
#    return "" if $pw;

	if (! $pw)
    	{
		if ( open( RANDOM, "/dev/urandom" ) )
	    	{
        		my $buf;
		        # 57 bytes is a full line of Base64 coding, and contains
		        # 456 bits of randomness - given a perfectly random /dev/random
	       		if ( read( RANDOM, $buf, 57 ) != 57 )
	        	{
	        	    warn("Short read from /dev/random: $!");
	        	}
	        	else
	        	{
	            		$pw = encode_base64($buf);
	        	    chomp $pw;
	        	}
	        	close RANDOM;
	    	}
	    	else
	    	{
	    	    warn "Could not open /dev/urandom: $!";
	    	}
		
	    	$rec->set_prop('DbPassword', $pw);
	}

        if (! $adminpw)
        {
                if ( open( RANDOM, "/dev/urandom" ) )
                {
                        my $buf;
                        # 57 bytes is a full line of Base64 coding, and contains
                        # 456 bits of randomness - given a perfectly random /dev/random
                        if ( read( RANDOM, $buf, 57 ) != 57 )
                        {
                            warn("Short read from /dev/random: $!");
                        }
                        else
                        {
                                $adminpw = encode_base64($buf);
                            chomp $adminpw;
			   $adminpw = substr $adminpw, 0, 16;
                        }
                        close RANDOM;
                }
                else
                {
                    warn "Could not open /dev/urandom: $!";
                }

                $rec->set_prop('AdminPassword', $adminpw);
        }



}
