anchor.diff:  
     options = {
   
  -    /*
  +    dbType = mkOption {
  +      default = "postgres";
  +      example = "mysql";
  +      description = "Database type.";
  +    };
  +
       dbName = mkOption {
  -      example = "wikidb";
  -      default = "wikidb";
  -      description = "
  -        Name of the wiki database that holds MediaWiki data.
  -      ";
  +      default = "mediawiki";
  +      description = "Name of the database that holds the MediaWiki data.";
       };
       
  -    dbEmergencyContact = mkOption {
  -      example = "admin@example.com";
  -      default = "e.dolstra@tudelft.nl";
  -      description = "
  -	In case of emergency, contact this e-mail.
  -      ";
  -    };
  -    
  -    dbPasswordSender = mkOption {
  -      example = "passwordrecovery@example.com";
  -      default = "e.dolstra@tudelft.nl";
  -      description = "
  -	From which e-mail the recovery password for database users will be sent
  -      ";
  -    };
  -
  -    dbType = mkOption {
  -      example = "mysql";
  -      default = "mysql";
  -      description = "
  -	Which type of database should be used
  -      ";
  -    };
  -
       dbServer = mkOption {
  +      default = ""; # use a Unix domain socket
         example = "10.0.2.2";
  -      default = "10.0.2.2";
  -      description = "
  -	The location of the database server, e.g. localhost or remote ip address.
  -      ";
  -    };
  -
  -    dbPortNumber = mkOption {
  -      example = "3306";
  -      default = "3306";
  -      description = "
  -	Portnumber used to connect to the database server. Default: 3306.
  -      ";
  +      description = ''
  +	The location of the database server.  Leave empty to use a
  +        database server running on the same machine through a Unix
  +        domain socket.
  +      '';
       };
   
       dbUser = mkOption {
  -      example = "root";
  -      default = "root";
  -      description = "
  -	The username for accessing the database.
  -      ";
  +      default = "wwwrun";
  +      example = "mediawiki";
  +      description = "The user name for accessing the database.";
       };
       
       dbPassword = mkOption {
  +      default = "";
         example = "foobar";
  -      default = "";
  -      description = "
  -	The dbUser's password.
  -      ";
  +      description = ''
  +        The password of the database user.  Warning: this is stored in
  +        cleartext in the Nix store!
  +      '';
       };
       
  -    dbSiteName = mkOption {
  -      example = "wikipedia";
  -      default = "wiki";
  -      description = "
  -	Name of the wiki site.
  -      ";
  +    emergencyContact = mkOption {
  +      default = serverInfo.serverConfig.adminAddr;
  +      example = "admin@example.com";
  +      description = ''
  +        Emergency contact e-mail address.  Defaults to the Apache
  +        admin address.
  +      '';
       };
  -    */
  +    
  +    passwordSender = mkOption {
  +      default = serverInfo.serverConfig.adminAddr;
  +      example = "password@example.com";
  +      description = ''
  +        E-mail address from which password confirmations originate.
  +        Defaults to the Apache admin address.
  +      '';
  +    };
  +
  +    siteName = mkOption {
  +      default = "MediaWiki";
  +      example = "Foobar Wiki";
  +      description = "Name of the wiki";
  +    };
   
       urlPrefix = mkOption {
         example = "/wiki";
  
positive.code:         $wgDebugLogFile = "/tmp/mediawiki_debug_log.txt";
  
          # Database configuration.
          $wgDBtype = "postgres";
          $wgDBserver = "";
          $wgDBuser = "wwwrun";
          $wgDBname = "mediawiki";
  
          $wgEmergencyContact = "${serverInfo.serverConfig.adminAddr}";
          $wgPasswordSender = $wgEmergencyContact;
        ?>
      '';
  
  
negative.code:       '';
      };
  
      extraConfig = mkOption {
        default = "";
        example =
          ''
            $wgEnableEmail = false;
          '';
        description = ''
          Any additional text to be appended to MediaWiki's
          configuration file.  This is a PHP script.  For configuration
          settings, see <link xlink:href='http://www.mediawiki.org/wiki/Manual:Configuration_settings'/>.
        '';
      };
  
    };
  
    startupScript = pkgs.writeScript "mediawiki_startup.sh"
      # Initialise the database automagically if we're using a Postgres
      # server on localhost.
      (optionalString (config.dbType == "postgres" && config.dbServer == "") ''
        if ! ${pkgs.postgresql}/bin/psql -l | grep -q ' ${config.dbName} ' ; then
            ${pkgs.postgresql}/bin/createuser --no-superuser --no-createdb --no-createrole "${config.dbUser}" || true
            ${pkgs.postgresql}/bin/createdb "${config.dbName}" -O "${config.dbUser}"
            ${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} "${config.dbUser}" -c "(echo 'CREATE LANGUAGE plpgsql;'; cat ${mediawikiRoot}/maintenance/postgres/tables.sql; echo 'CREATE TEXT SEARCH CONFIGURATION public.default ( COPY = pg_catalog.english );'; echo COMMIT) | ${pkgs.postgresql}/bin/psql ${config.dbName}"
        fi
      '');
  }
  