=== modified file 'includes/bootstrap.inc'
--- includes/bootstrap.inc	2008-10-25 01:13:40 +0000
+++ includes/bootstrap.inc	2008-10-26 16:17:43 +0000
@@ -396,8 +396,11 @@ function conf_init() {
   global $databases, $db_prefix, $cookie_domain, $conf, $installed_profile, $update_free_access;
   $conf = array();
 
-  if (file_exists(DRUPAL_ROOT . '/' . conf_path() . '/settings.php')) {
-    include_once DRUPAL_ROOT . '/' . conf_path() . '/settings.php';
+  foreach (array('settings.php', 'settings_drupal_7.php' as $settings_file) {
+    $filename = DRUPAL_ROOT . '/' . conf_path() . '/'. $settings_file;
+    if (file_exists($filename)) {
+      include_once $filename;
+    }
   }
 
   if (isset($base_url)) {

=== modified file 'includes/install.inc'
--- includes/install.inc	2008-10-24 18:21:54 +0000
+++ includes/install.inc	2008-10-26 16:08:41 +0000
@@ -974,3 +974,63 @@ function drupal_check_module($module) {
   }
   return TRUE;
 }
+
+/**
+ * Check installation requirements and report any errors.
+ */
+function install_check_requirements($profile, $verify, $settings_file = 'settings.php', $check_profile = TRUE) {
+  if ($check_profile) {
+    // Check the profile requirements.
+    $requirements = drupal_check_profile($profile);
+  }
+
+  // If Drupal is not set up already, we need to create a settings file.
+  if (!$verify) {
+    $writable = FALSE;
+    $conf_path = './' . conf_path(FALSE, TRUE);
+    $settings_file = $conf_path . '/' . $settings_file;
+    $file = $conf_path;
+    $exists = FALSE;
+    // Verify that the directory exists.
+    if (drupal_verify_install_file($conf_path, FILE_EXIST, 'dir')) {
+      // Check to make sure a settings.php already exists.
+      $file = $settings_file;
+      if (drupal_verify_install_file($settings_file, FILE_EXIST)) {
+        $exists = TRUE;
+        // If it does, make sure it is writable.
+        $writable = drupal_verify_install_file($settings_file, FILE_READABLE|FILE_WRITABLE);
+        $exists = TRUE;
+      }
+    }
+
+    if (!$exists) {
+      $requirements['settings file exists'] = array(
+        'title'       => st('Settings file'),
+        'value'       => st('The settings file does not exist.'),
+        'severity'    => REQUIREMENT_ERROR,
+        'description' => st('The @drupal installer requires that you create a settings file as part of the installation process. Copy the %default_file file to %file. More details about installing Drupal are available in INSTALL.txt.', array('@drupal' => drupal_install_profile_name(), '%file' => $file, '%default_file' => $conf_path .'/default.' . $settings_file)),
+      );
+    }
+    elseif ($exists) {
+      $requirements['settings file exists'] = array(
+        'title'       => st('Settings file'),
+        'value'       => st('The %file file exists.', array('%file' => $file)),
+      );
+    }
+    if (!$writable) {
+      $requirements['settings file writable'] = array(
+        'title'       => st('Settings file'),
+        'value'       => st('The settings file is not writable.'),
+        'severity'    => REQUIREMENT_ERROR,
+        'description' => st('The @drupal installer requires write permissions to %file during the installation process. If you are unsure how to grant file permissions, please consult the <a href="@handbook_url">online handbook</a>.', array('@drupal' => drupal_install_profile_name(), '%file' => $file, '@handbook_url' => 'http://drupal.org/server-permissions')),
+      );
+    }
+    elseif ($writable) {
+      $requirements['settings file'] = array(
+        'title'       => st('Settings file'),
+        'value'       => st('Settings file is writable.'),
+      );
+    }
+  }
+  return $requirements;
+}

=== modified file 'install.php'
--- install.php	2008-10-19 20:55:07 +0000
+++ install.php	2008-10-26 16:28:43 +0000
@@ -891,64 +891,6 @@ function install_reserved_tasks() {
 }
 
 /**
- * Check installation requirements and report any errors.
- */
-function install_check_requirements($profile, $verify) {
-  // Check the profile requirements.
-  $requirements = drupal_check_profile($profile);
-
-  // If Drupal is not set up already, we need to create a settings file.
-  if (!$verify) {
-    $writable = FALSE;
-    $conf_path = './' . conf_path(FALSE, TRUE);
-    $settings_file = $conf_path . '/settings.php';
-    $file = $conf_path;
-    $exists = FALSE;
-    // Verify that the directory exists.
-    if (drupal_verify_install_file($conf_path, FILE_EXIST, 'dir')) {
-      // Check to make sure a settings.php already exists.
-      $file = $settings_file;
-      if (drupal_verify_install_file($settings_file, FILE_EXIST)) {
-        $exists = TRUE;
-        // If it does, make sure it is writable.
-        $writable = drupal_verify_install_file($settings_file, FILE_READABLE|FILE_WRITABLE);
-        $exists = TRUE;
-      }
-    }
-
-    if (!$exists) {
-      $requirements['settings file exists'] = array(
-        'title'       => st('Settings file'),
-        'value'       => st('The settings file does not exist.'),
-        'severity'    => REQUIREMENT_ERROR,
-        'description' => st('The @drupal installer requires that you create a settings file as part of the installation process. Copy the %default_file file to %file. More details about installing Drupal are available in INSTALL.txt.', array('@drupal' => drupal_install_profile_name(), '%file' => $file, '%default_file' => $conf_path .'/default.settings.php')),
-      );
-    }
-    elseif ($exists) {
-      $requirements['settings file exists'] = array(
-        'title'       => st('Settings file'),
-        'value'       => st('The %file file exists.', array('%file' => $file)),
-      );
-    }
-    if (!$writable) {
-      $requirements['settings file writable'] = array(
-        'title'       => st('Settings file'),
-        'value'       => st('The settings file is not writable.'),
-        'severity'    => REQUIREMENT_ERROR,
-        'description' => st('The @drupal installer requires write permissions to %file during the installation process. If you are unsure how to grant file permissions, please consult the <a href="@handbook_url">online handbook</a>.', array('@drupal' => drupal_install_profile_name(), '%file' => $file, '@handbook_url' => 'http://drupal.org/server-permissions')),
-      );
-    }
-    elseif ($writable) {
-      $requirements['settings file'] = array(
-        'title'       => st('Settings file'), 
-        'value'       => st('Settings file is writable.'),
-      );
-    }
-  }
-  return $requirements;
-}
-
-/**
  * Add the installation task list to the current page.
  */
 function install_task_list($active = NULL) {

=== added file 'sites/default/settings_drupal_7.php'
--- sites/default/settings_drupal_7.php	1970-01-01 00:00:00 +0000
+++ sites/default/settings_drupal_7.php	2008-10-26 16:29:44 +0000
@@ -0,0 +1 @@
+// $Id$

=== modified file 'update.php'
--- update.php	2008-10-24 18:47:02 +0000
+++ update.php	2008-10-26 16:30:03 +0000
@@ -592,8 +592,11 @@ function update_task_list($active = NULL
  * Check update requirements and report any errors.
  */
 function update_check_requirements() {
+  $requirements = install_check_requirements('', TRUE, 'settings_drupal_7.php', FALSE);
+  $requirements += install_check_requirements('', TRUE, 'settings.php', FALSE);
+
   // Check the system module requirements only.
-  $requirements = module_invoke('system', 'requirements', 'update');
+  $requirements += module_invoke('system', 'requirements', 'update');
   $severity = drupal_requirements_severity($requirements);
 
   // If there are issues, report them.
@@ -610,6 +613,22 @@ function update_check_requirements() {
   }
 }
 
+function update_check_drupal_7_settings() {
+  global $db_url, $databases;
+
+  if (empty($databases) && !empty($db_url) && is_string($db_url)) {
+    $url = parse_url($db_url);
+    $databases['default']['default']['driver'] = substr($db_url, 0, strpos($db_url, '://'));
+    $databases['default']['default']['database'] = substr($url['path'], 1);
+    foreach (array('user' => 'username', 'pass' => 'password', 'host' => 'host', 'port' => 'port') as $old_key => $new_key) {
+      $databases['default']['default'][$new_key] =  isset($url[$old_key]) ? urldecode($url[$old_key]) : '';
+    }
+    $conf_path = conf_path();
+    file_put_contents($conf_path .'/settings.php', "include_once DRUPAL_ROOT .'/$conf_path/settings_drupal_7.php';", FILE_APPEND);
+    file_put_contents($conf_path .'/settings_drupal_7.php', var_export($databases, TRUE), FILE_APPEND);
+  }
+}
+
 // Some unavoidable errors happen because the database is not yet up-to-date.
 // Our custom error handler is not yet installed, so we just suppress them.
 ini_set('display_errors', FALSE);
@@ -644,6 +663,9 @@ if (empty($op)) {
   // Check the update requirements for Drupal.
   update_check_requirements();
 
+  // Write D7 settings file.
+  update_check_drupal_7_settings();
+
   // Display the warning messages (if any) in a dedicated maintenance page,
   // or redirect to the update information page if no message.
   $messages = drupal_set_message();

