? .DS_Store
? drupal_common_theme_00.patch
? drupal_common_theme_01.patch
? make_node_optional_11.patch
? make_node_optional_12.patch
? make_node_optional_13.patch
? make_node_optional_14.patch
? performance_settings_08.patch
? performance_settings_09.patch
? performance_settings_10.patch
? remove_fieldset_body_title_02.patch
? vocabulary_form_cleanup_08.patch
? vocabulary_form_cleanup_09.patch
? modules/.DS_Store
? modules/field/.DS_Store
? modules/field/modules/.DS_Store
? profiles/.DS_Store
? sites/.DS_Store
? sites/default/files
? sites/default/settings.php
Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.951
diff -u -p -r1.951 common.inc
--- includes/common.inc	31 Jul 2009 19:56:09 -0000	1.951
+++ includes/common.inc	4 Aug 2009 22:38:55 -0000
@@ -4817,8 +4817,7 @@ function drupal_flush_all_caches() {
   }
 
   drupal_theme_rebuild();
-  // Rebuild content types, menu will be rebuilt as well.
-  node_types_rebuild();
+  menu_rebuild();
   // Don't clear cache_form - in-progress form submissions may break.
   // Ordered so clearing the page cache will always be the last action.
   $core = array('cache', 'cache_filter', 'cache_registry', 'cache_page');
Index: includes/locale.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/locale.inc,v
retrieving revision 1.221
diff -u -p -r1.221 locale.inc
--- includes/locale.inc	30 Jul 2009 08:40:22 -0000	1.221
+++ includes/locale.inc	4 Aug 2009 22:38:57 -0000
@@ -448,10 +448,14 @@ function locale_languages_delete_form_su
     db_delete('languages')
       ->condition('language', $form_state['values']['langcode'])
       ->execute();
-    db_update('node')
-      ->fields(array('language' => ''))
-      ->condition('language', $form_state['values']['langcode'])
-      ->execute();
+    if (module_exists('node')) {
+      // TODO: move the {node} update to Content Translation which depends on
+      // Node.
+      db_update('node')
+        ->fields(array('language' => ''))
+        ->condition('language', $form_state['values']['langcode'])
+        ->execute();
+    }
     $variables = array('%locale' => $languages[$form_state['values']['langcode']]->name);
     drupal_set_message(t('The language %locale has been removed.', $variables));
     watchdog('locale', 'The language %locale has been removed.', $variables);
Index: includes/menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.331
diff -u -p -r1.331 menu.inc
--- includes/menu.inc	30 Jul 2009 10:16:48 -0000	1.331
+++ includes/menu.inc	4 Aug 2009 22:38:58 -0000
@@ -750,7 +750,7 @@ function _menu_link_translate(&$item) {
  *   Type of the object. These appear in hook_menu definitions as %type. Core
  *   provides aggregator_feed, aggregator_category, contact, filter_format,
  *   forum_term, menu, menu_link, node, taxonomy_vocabulary, user. See the
- *   relevant {$type}_load function for more on each. Defaults to node.
+ *   relevant {$type}_load function for more on each.
  * @param $position
  *   The position of the object in the path, where the first path segment is 0.
  *   For node/%node, the position of %node is 1, but for comment/reply/%node,
@@ -758,7 +758,7 @@ function _menu_link_translate(&$item) {
  * @param $path
  *   See menu_get_item() for more on this. Defaults to the current path.
  */
-function menu_get_object($type = 'node', $position = 1, $path = NULL) {
+function menu_get_object($type, $position = 1, $path = NULL) {
   $router_item = menu_get_item($path);
   if (isset($router_item['load_functions'][$position]) && !empty($router_item['map'][$position]) && $router_item['load_functions'][$position] == $type . '_load') {
     return $router_item['map'][$position];
Index: includes/module.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/module.inc,v
retrieving revision 1.149
diff -u -p -r1.149 module.inc
--- includes/module.inc	28 Jul 2009 19:06:15 -0000	1.149
+++ includes/module.inc	4 Aug 2009 22:38:58 -0000
@@ -260,8 +260,8 @@ function module_enable($module_list, $di
   if (!empty($invoke_modules)) {
     // Refresh the module list to include the new enabled module.
     module_list(TRUE);
-    // Force to regenerate the stored list of hook implementations.
     registry_rebuild();
+    menu_rebuild();
 
     // If any modules were newly installed, execute the hook for them.
     if (!$disable_modules_installed_hook && !empty($modules_installed)) {
@@ -271,13 +271,6 @@ function module_enable($module_list, $di
 
   foreach ($invoke_modules as $module) {
     module_invoke($module, 'enable');
-    // Check if node_access table needs rebuilding.
-    // We check for the existence of node_access_needs_rebuild() since
-    // at install time, module_enable() could be called while node.module
-    // is not enabled yet.
-    if (drupal_function_exists('node_access_needs_rebuild') && !node_access_needs_rebuild() && module_hook($module, 'node_grants')) {
-      node_access_needs_rebuild(TRUE);
-    }
   }
 
   if (!empty($invoke_modules)) {
@@ -297,11 +290,6 @@ function module_disable($module_list) {
   $invoke_modules = array();
   foreach ($module_list as $module) {
     if (module_exists($module)) {
-      // Check if node_access table needs rebuilding.
-      if (!node_access_needs_rebuild() && module_hook($module, 'node_grants')) {
-        node_access_needs_rebuild(TRUE);
-      }
-
       module_load_install($module);
       module_invoke($module, 'disable');
       db_update('system')
@@ -322,12 +310,8 @@ function module_disable($module_list) {
     module_list(TRUE);
     // Force to regenerate the stored list of hook implementations.
     registry_rebuild();
-  }
-
-  // If there remains no more node_access module, rebuilding will be
-  // straightforward, we can do it right now.
-  if (node_access_needs_rebuild() && count(module_implements('node_grants')) == 0) {
-    node_access_rebuild();
+    // Rebuild the menu.
+    menu_rebuild();
   }
 }
 
Index: includes/path.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/path.inc,v
retrieving revision 1.44
diff -u -p -r1.44 path.inc
--- includes/path.inc	2 Aug 2009 06:48:24 -0000	1.44
+++ includes/path.inc	4 Aug 2009 22:38:58 -0000
@@ -18,7 +18,7 @@ function drupal_path_initialize() {
     $_GET['q'] = drupal_get_normal_path(trim($_GET['q'], '/'));
   }
   else {
-    $_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'node'));
+    $_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'frontpage'));
   }
 }
 
@@ -308,7 +308,7 @@ function drupal_is_front_page() {
   if (!isset($is_front_page)) {
     // As drupal_path_initialize updates $_GET['q'] with the 'site_frontpage' path,
     // we can check it against the 'site_frontpage' variable.
-    $is_front_page = ($_GET['q'] == drupal_get_normal_path(variable_get('site_frontpage', 'node')));
+    $is_front_page = ($_GET['q'] == drupal_get_normal_path(variable_get('site_frontpage', 'frontpage')));
   }
 
   return $is_front_page;
@@ -329,7 +329,7 @@ function drupal_match_path($path, $patte
   $regexps = &drupal_static(__FUNCTION__);
 
   if (!isset($regexps[$patterns])) {
-    $regexps[$patterns] = '/^(' . preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), array('|', '.*', '\1' . preg_quote(variable_get('site_frontpage', 'node'), '/') . '\2'), preg_quote($patterns, '/')) . ')$/';
+    $regexps[$patterns] = '/^(' . preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), array('|', '.*', '\1' . preg_quote(variable_get('site_frontpage', 'frontpage'), '/') . '\2'), preg_quote($patterns, '/')) . ')$/';
   }
   return (bool)preg_match($regexps[$patterns], $path);
 }
Index: includes/theme.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/theme.inc,v
retrieving revision 1.502
diff -u -p -r1.502 theme.inc
--- includes/theme.inc	3 Aug 2009 03:04:33 -0000	1.502
+++ includes/theme.inc	4 Aug 2009 22:38:59 -0000
@@ -1937,10 +1937,6 @@ function template_preprocess_page(&$vari
   $variables['rdf_namespaces']    = drupal_get_rdf_namespaces();
   $variables['grddl_profile']     = 'http://ns.inria.fr/grddl/rdfa/';
 
-  if ($node = menu_get_object()) {
-    $variables['node'] = $node;
-  }
-
   // Compile a list of classes that are going to be applied to the body element.
   // This allows advanced theming based on context (home page, node of certain type, etc.).
   // Add a class that tells us whether we're on the front page or not.
@@ -1963,10 +1959,6 @@ function template_preprocess_page(&$vari
     }
   }
 
-  // If on an individual node page, add the node type to body classes.
-  if (isset($variables['node']) && $variables['node']->type) {
-    $variables['classes_array'][] = 'node-type-' . form_clean_id($variables['node']->type);
-  }
   // Add information about the number of sidebars.
   if ($variables['layout'] == 'both') {
     $variables['classes_array'][] = 'two-sidebars';
Index: modules/aggregator/aggregator.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.test,v
retrieving revision 1.28
diff -u -p -r1.28 aggregator.test
--- modules/aggregator/aggregator.test	30 Jul 2009 19:24:20 -0000	1.28
+++ modules/aggregator/aggregator.test	4 Aug 2009 22:38:59 -0000
@@ -8,7 +8,7 @@
 
 class AggregatorTestCase extends DrupalWebTestCase {
   function setUp() {
-    parent::setUp('aggregator', 'aggregator_test');
+    parent::setUp('node', 'aggregator', 'aggregator_test');
     $web_user = $this->drupalCreateUser(array('administer news feeds', 'access news feeds', 'create article content'));
     $this->drupalLogin($web_user);
   }
Index: modules/block/block.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.admin.inc,v
retrieving revision 1.47
diff -u -p -r1.47 block.admin.inc
--- modules/block/block.admin.inc	20 Jul 2009 18:51:32 -0000	1.47
+++ modules/block/block.admin.inc	4 Aug 2009 22:39:00 -0000
@@ -252,25 +252,6 @@ function block_admin_configure(&$form_st
     '#description' => t('Show this block only for the selected role(s). If you select no roles, the block will be visible to all users.'),
   );
 
-  // Content type specific configuration.
-  $default_type_options = db_query("SELECT type FROM {block_node_type} WHERE module = :module AND delta = :delta", array(
-    ':module' => $module,
-    ':delta' => $delta,
-  ))->fetchCol();
-  $form['content_type_vis_settings'] = array(
-    '#type' => 'fieldset',
-    '#title' => t('Content type specific visibility settings'),
-    '#collapsible' => TRUE,
-    '#collapsed' => TRUE,
-  );
-  $form['content_type_vis_settings']['types'] = array(
-    '#type' => 'checkboxes',
-    '#title' => t('Show block for specific content types'),
-    '#default_value' => $default_type_options,
-    '#options' => node_type_get_names(),
-    '#description' => t('Show this block only when on a page displaying a post of the given type(s). If you select no types, there will be no type specific limitation.'),
-  );
-
   // Standard block configurations.
   $form['user_vis_settings'] = array(
     '#type' => 'fieldset',
@@ -337,20 +318,6 @@ function block_admin_configure_submit($f
     }
     $query->execute();
 
-    db_delete('block_node_type')
-      ->condition('module', $form_state['values']['module'])
-      ->condition('delta', $form_state['values']['delta'])
-      ->execute();
-    $query = db_insert('block_node_type')->fields(array('type', 'module', 'delta'));
-    foreach (array_filter($form_state['values']['types']) as $type) {
-      $query->values(array(
-        'type' => $type,
-        'module' => $form_state['values']['module'],
-        'delta' => $form_state['values']['delta'],
-      ));
-    }
-    $query->execute();
-
     module_invoke($form_state['values']['module'], 'block_save', $form_state['values']['delta'], $form_state['values']);
     drupal_set_message(t('The block configuration has been saved.'));
     cache_clear_all();
@@ -414,16 +381,6 @@ function block_add_block_form_submit($fo
   }
   $query->execute();
 
-  $query = db_insert('block_node_type')->fields(array('type', 'module', 'delta'));
-  foreach (array_filter($form_state['values']['types']) as $type) {
-    $query->values(array(
-      'type' => $type,
-      'module' => $form_state['values']['module'],
-      'delta' => $delta,
-    ));
-  }
-  $query->execute();
-
   drupal_set_message(t('The block has been created.'));
   cache_clear_all();
   $form_state['redirect'] = 'admin/structure/block';
Index: modules/block/block.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.install,v
retrieving revision 1.30
diff -u -p -r1.30 block.install
--- modules/block/block.install	2 Aug 2009 08:16:16 -0000	1.30
+++ modules/block/block.install	4 Aug 2009 22:39:00 -0000
@@ -131,34 +131,6 @@ function block_schema() {
     ),
   );
 
-  $schema['block_node_type'] = array(
-    'description' => 'Sets up display criteria for blocks based on content types',
-    'fields' => array(
-      'module' => array(
-        'type' => 'varchar',
-        'length' => 64,
-        'not null' => TRUE,
-        'description' => "The block's origin module, from {block}.module.",
-      ),
-      'delta' => array(
-        'type' => 'varchar',
-        'length' => 32,
-        'not null' => TRUE,
-        'description' => "The block's unique delta within module, from {block}.delta.",
-      ),
-      'type' => array(
-        'type' => 'varchar',
-        'length' => 32,
-        'not null' => TRUE,
-        'description' => "The machine-readable name of this type from {node_type}.type.",
-      ),
-    ),
-    'primary key' => array('module', 'delta', 'type'),
-    'indexes' => array(
-      'type' => array('type'),
-    ),
-  );
-
   $schema['box'] = array(
     'description' => 'Stores contents of custom-made blocks.',
     'fields' => array(
Index: modules/block/block.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.module,v
retrieving revision 1.353
diff -u -p -r1.353 block.module
--- modules/block/block.module	3 Aug 2009 03:04:33 -0000	1.353
+++ modules/block/block.module	4 Aug 2009 22:39:00 -0000
@@ -477,8 +477,6 @@ function block_form_system_performance_s
     '#title' => t('Block cache'),
     '#default_value' => variable_get('block_cache', CACHE_DISABLED),
     '#options' => array(CACHE_DISABLED => t('Disabled'), CACHE_NORMAL => t('Enabled (recommended)')),
-    '#disabled' => count(module_implements('node_grants')),
-    '#description' => t('Note that block caching is inactive when modules defining content access restrictions are enabled.'),
   );
 
   // Check if the "Who's online" block is enabled.
@@ -619,7 +617,7 @@ function _block_load_blocks() {
 /**
  * Implement hook_block_list_alter().
  *
- * Check the page, user role, content type and user specific visibilty settings.
+ * Check the page, user role and user specific visibilty settings.
  * Remove the block if the visibility conditions are not met.
  */
 function block_block_list_alter(&$blocks) {
@@ -632,13 +630,6 @@ function block_block_list_alter(&$blocks
     $block_roles[$record->module][$record->delta][] = $record->rid;
   }
 
-  // Build an array of node types for each block.
-  $block_node_types = array();
-  $result = db_query('SELECT module, delta, type FROM {block_node_type}');
-  foreach ($result as $record) {
-    $block_node_types[$record->module][$record->delta][] = $record->type;
-  }
-
   foreach ($blocks as $key => $block) {
     if ($block->theme != $theme_key || $block->status != 1) {
       // This block was added by a contrib module, leave it in the list.
@@ -654,34 +645,6 @@ function block_block_list_alter(&$blocks
       continue;
     }
 
-    // If a block has no node types associated, it is displayed for every type.
-    // For blocks with node types associated, if the node type does not match
-    // the settings from this block, remove it from the block list.
-    if (isset($block_node_types[$block->module][$block->delta])) {
-      $node = menu_get_object();
-      if (!empty($node)) {
-        // This is a node or node edit page.
-        if (!in_array($node->type, $block_node_types[$block->module][$block->delta])) {
-          // This block should not be displayed for this node type.
-          unset($blocks[$key]);
-          continue;
-        }
-      }
-      elseif (arg(0) == 'node' && arg(1) == 'add' && in_array(arg(2), array_keys(node_type_get_types()))) {
-        // This is a node creation page
-        if (!in_array(arg(2), $block_node_types[$block->module][$block->delta])) {
-          // This block should not be displayed for this node type.
-          unset($blocks[$key]);
-          continue;
-        }
-      }
-      else {
-        // This is not a node page, remove the block.
-        unset($blocks[$key]);
-        continue;
-      }
-    }
-
     // Use the user's block visibility setting, if necessary.
     if ($block->custom != 0) {
       if ($user->uid && isset($user->block[$block->module][$block->delta])) {
Index: modules/block/block.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.test,v
retrieving revision 1.25
diff -u -p -r1.25 block.test
--- modules/block/block.test	3 Aug 2009 03:04:33 -0000	1.25
+++ modules/block/block.test	4 Aug 2009 22:39:00 -0000
@@ -104,9 +104,9 @@ class BlockTestCase extends DrupalWebTes
    */
   function testBlockVisibility() {
     $block = array();
-    $block['title'] = 'Syndicate';
-    $block['module'] = 'node';
-    $block['delta'] = 'syndicate';
+    $block['title'] = 'Powered by Drupal';
+    $block['module'] = 'system';
+    $block['delta'] = 'powered-by';
 
     // Set the block to be hidden on any user path, and to be shown only to
     // authenticated users.
@@ -119,15 +119,15 @@ class BlockTestCase extends DrupalWebTes
     $this->moveBlockToRegion($block, $this->regions[1]);
 
     $this->drupalGet('');
-    $this->assertText('Syndicate', t('Block was displayed on the front page.'));
+    $this->assertText($block['title'], t('Block was displayed on the front page.'));
 
     $this->drupalGet('user*');
-    $this->assertNoText('Syndicate', t('Block was not displayed according to block visibility rules.'));
+    $this->assertNoText($block['title'], t('Block was not displayed according to block visibility rules.'));
 
     // Confirm that the block is not displayed to anonymous users.
     $this->drupalLogout();
     $this->drupalGet('');
-    $this->assertNoText('Syndicate', t('Block was not displayed to anonymous users.'));
+    $this->assertNoText($block['title'], t('Block was not displayed to anonymous users.'));
   }
 
   /**
Index: modules/blog/blog.info
===================================================================
RCS file: /cvs/drupal/drupal/modules/blog/blog.info,v
retrieving revision 1.11
diff -u -p -r1.11 blog.info
--- modules/blog/blog.info	8 Jun 2009 09:23:51 -0000	1.11
+++ modules/blog/blog.info	4 Aug 2009 22:39:00 -0000
@@ -8,3 +8,4 @@ core = 7.x
 files[] = blog.module
 files[] = blog.pages.inc
 files[] = blog.test
+dependencies[] = node
\ No newline at end of file
Index: modules/blogapi/blogapi.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/blogapi/blogapi.test,v
retrieving revision 1.15
diff -u -p -r1.15 blogapi.test
--- modules/blogapi/blogapi.test	13 Jul 2009 21:51:09 -0000	1.15
+++ modules/blogapi/blogapi.test	4 Aug 2009 22:39:00 -0000
@@ -11,7 +11,7 @@ class BlogAPITestCase extends DrupalWebT
   }
 
   function setUp() {
-    parent::setUp('blog', 'blogapi', 'taxonomy');
+    parent::setUp('node', 'blog', 'blogapi', 'taxonomy');
 
     // Force loading the xmlrpc.inc to have the xmlrpc() function.
     drupal_function_exists('xmlrpc');
Index: modules/book/book.info
===================================================================
RCS file: /cvs/drupal/drupal/modules/book/book.info,v
retrieving revision 1.12
diff -u -p -r1.12 book.info
--- modules/book/book.info	8 Jun 2009 09:23:51 -0000	1.12
+++ modules/book/book.info	4 Aug 2009 22:39:00 -0000
@@ -10,3 +10,4 @@ files[] = book.admin.inc
 files[] = book.pages.inc
 files[] = book.install
 files[] = book.test
+dependencies[] = node
\ No newline at end of file
Index: modules/book/book.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/book/book.test,v
retrieving revision 1.13
diff -u -p -r1.13 book.test
--- modules/book/book.test	20 Jul 2009 18:51:32 -0000	1.13
+++ modules/book/book.test	4 Aug 2009 22:39:00 -0000
@@ -13,7 +13,7 @@ class BookTestCase extends DrupalWebTest
   }
 
   function setUp() {
-    parent::setUp('book');
+    parent::setUp('node', 'book');
   }
 
   /**
@@ -205,7 +205,7 @@ class BookBlockTestCase extends DrupalWe
   }
 
   function setUp() {
-    parent::setUp('book');
+    parent::setUp('node', 'book');
 
     // Create and login user
     $admin_user = $this->drupalCreateUser(array('administer blocks'));
Index: modules/comment/comment.info
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.info,v
retrieving revision 1.10
diff -u -p -r1.10 comment.info
--- modules/comment/comment.info	8 Jun 2009 09:23:51 -0000	1.10
+++ modules/comment/comment.info	4 Aug 2009 22:39:01 -0000
@@ -10,3 +10,4 @@ files[] = comment.admin.inc
 files[] = comment.pages.inc
 files[] = comment.install
 files[] = comment.test
+dependencies[] = node
\ No newline at end of file
Index: modules/dblog/dblog.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/dblog/dblog.test,v
retrieving revision 1.24
diff -u -p -r1.24 dblog.test
--- modules/dblog/dblog.test	31 Jul 2009 19:01:01 -0000	1.24
+++ modules/dblog/dblog.test	4 Aug 2009 22:39:01 -0000
@@ -17,7 +17,7 @@ class DBLogTestCase extends DrupalWebTes
    * Enable modules and create users with specific permissions.
    */
   function setUp() {
-    parent::setUp('dblog', 'blog', 'poll');
+    parent::setUp('dblog', 'node', 'blog', 'poll');
     // Create users.
     $this->big_user = $this->drupalCreateUser(array('administer site configuration', 'access administration pages', 'access site reports', 'administer users'));
     $this->any_user = $this->drupalCreateUser(array());
Index: modules/field/modules/number/number.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/modules/number/number.module,v
retrieving revision 1.11
diff -u -p -r1.11 number.module
--- modules/field/modules/number/number.module	1 Aug 2009 06:03:12 -0000	1.11
+++ modules/field/modules/number/number.module	4 Aug 2009 22:39:01 -0000
@@ -94,7 +94,7 @@ function number_field_schema($field) {
  * - 'number_min': The value is smaller than the allowed minimum value.
  * - 'number_max': The value is larger than the allowed maximum value.
  */
-function number_field_validate($obj_type, $node, $field, $instance, $items, &$errors) {
+function number_field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
   foreach ($items as $delta => $item) {
     if ($item['value'] != '') {
       if (is_numeric($instance['settings']['min']) && $item['value'] < $instance['settings']['min']) {
Index: modules/filter/filter.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.test,v
retrieving revision 1.28
diff -u -p -r1.28 filter.test
--- modules/filter/filter.test	27 Jul 2009 20:15:35 -0000	1.28
+++ modules/filter/filter.test	4 Aug 2009 22:39:02 -0000
@@ -9,6 +9,10 @@ class FilterAdminTestCase extends Drupal
       'group' => 'Filter',
     );
   }
+  
+  function setUp() {
+    parent::setUp('node');
+  }
 
   /**
    * Test filter administration functionality.
Index: modules/forum/forum.info
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum.info,v
retrieving revision 1.12
diff -u -p -r1.12 forum.info
--- modules/forum/forum.info	8 Jun 2009 09:23:52 -0000	1.12
+++ modules/forum/forum.info	4 Aug 2009 22:39:02 -0000
@@ -2,6 +2,7 @@
 name = Forum
 description = Provides discussion forums.
 dependencies[] = taxonomy
+dependencies[] = node
 dependencies[] = comment
 package = Core
 version = VERSION
Index: modules/forum/forum.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum.test,v
retrieving revision 1.27
diff -u -p -r1.27 forum.test
--- modules/forum/forum.test	3 Aug 2009 03:04:33 -0000	1.27
+++ modules/forum/forum.test	4 Aug 2009 22:39:02 -0000
@@ -23,7 +23,7 @@ class ForumTestCase extends DrupalWebTes
    * Enable modules and create users with specific permissions.
    */
   function setUp() {
-    parent::setUp('taxonomy', 'comment', 'forum');
+    parent::setUp('node', 'taxonomy', 'comment', 'forum');
     // Create users.
     $this->big_user = $this->drupalCreateUser(array('administer blocks', 'administer forums', 'administer menu', 'administer taxonomy', 'create forum content')); // 'access administration pages'));
     $this->own_user = $this->drupalCreateUser(array('create forum content', 'edit own forum content', 'delete own forum content'));
Index: modules/help/help.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/help/help.module,v
retrieving revision 1.86
diff -u -p -r1.86 help.module
--- modules/help/help.module	31 Jul 2009 11:20:42 -0000	1.86
+++ modules/help/help.module	4 Aug 2009 22:39:02 -0000
@@ -41,7 +41,9 @@ function help_help($path, $arg) {
       $output .= '<li>' . t('<strong>Configure your website</strong> Once logged in, visit the <a href="@admin">administration section</a>, where you can <a href="@config">customize and configure</a> all aspects of your website.', array('@admin' => url('admin'), '@config' => url('admin/settings'))) . '</li>';
       $output .= '<li>' . t('<strong>Enable additional functionality</strong> Next, visit the <a href="@modules">module list</a> and enable features which suit your specific needs. You can find additional modules in the <a href="@download_modules">Drupal modules download section</a>.', array('@modules' => url('admin/structure/modules'), '@download_modules' => 'http://drupal.org/project/modules')) . '</li>';
       $output .= '<li>' . t('<strong>Customize your website design</strong> To change the "look and feel" of your website, visit the <a href="@themes">themes section</a>. You may choose from one of the included themes or download additional themes from the <a href="@download_themes">Drupal themes download section</a>.', array('@themes' => url('admin/appearance'), '@download_themes' => 'http://drupal.org/project/themes')) . '</li>';
-      $output .= '<li>' . t('<strong>Start posting content</strong> Finally, you can <a href="@content">add new content</a> for your website.', array('@content' => url('node/add'))) . '</li>';
+      if (module_exists('node')) {
+        $output .= '<li>' . t('<strong>Start posting content</strong> Finally, you can <a href="@content">add new content</a> for your website.', array('@content' => url('node/add'))) . '</li>';
+      }
       $output .= '</ol>';
       $output .= '<p>' . t('For more information, please refer to the specific topics listed in the next section, or the <a href="@handbook">online Drupal handbooks</a>. You may also post at the <a href="@forum">Drupal forum</a>, or view the wide range of <a href="@support">other support options</a> available.', array('@help' => url('admin/help'), '@handbook' => 'http://drupal.org/handbooks', '@forum' => 'http://drupal.org/forum', '@support' => 'http://drupal.org/support')) . '</p>';
       return $output;
Index: modules/locale/locale.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/locale/locale.install,v
retrieving revision 1.46
diff -u -p -r1.46 locale.install
--- modules/locale/locale.install	14 Jul 2009 10:22:17 -0000	1.46
+++ modules/locale/locale.install	4 Aug 2009 22:39:02 -0000
@@ -74,10 +74,6 @@ function locale_uninstall() {
   variable_del('locale_cache_strings');
   variable_del('locale_js_directory');
 
-  foreach (node_type_get_types() as $type => $content_type) {
-    $setting = variable_del('language_content_type_' . $type);
-  }
-
   // Switch back to English: with a $language->language value different from 'en'
   // successive calls of t() might result in calling locale(), which in turn might
   // try to query the unexisting {locales_source} and {locales_target} tables.
Index: modules/locale/locale.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/locale/locale.module,v
retrieving revision 1.246
diff -u -p -r1.246 locale.module
--- modules/locale/locale.module	2 Aug 2009 15:44:08 -0000	1.246
+++ modules/locale/locale.module	4 Aug 2009 22:39:02 -0000
@@ -277,45 +277,6 @@ function locale_form_path_admin_form_alt
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
- */
-function locale_form_node_type_form_alter(&$form, &$form_state) {
-  if (isset($form['identity']['type'])) {
-    $form['workflow']['language_content_type'] = array(
-      '#type' => 'radios',
-      '#title' => t('Multilingual support'),
-      '#default_value' => variable_get('language_content_type_' . $form['#node_type']->type, 0),
-      '#options' => array(t('Disabled'), t('Enabled')),
-      '#description' => t('Enable multilingual support for this content type. If enabled, a language selection field will be added to the editing form, allowing you to select from one of the <a href="!languages">enabled languages</a>. If disabled, new posts are saved with the default language. Existing content will not be affected by changing this option.', array('!languages' => url('admin/international/language'))),
-    );
-  }
-}
-
-/**
- * Implement hook_form_alter(). Adds language fields to forms.
- */
-function locale_form_alter(&$form, &$form_state, $form_id) {
-  if (isset($form['#id']) && $form['#id'] == 'node-form') {
-    if (isset($form['#node']->type) && variable_get('language_content_type_' . $form['#node']->type, 0)) {
-      $form['language'] = array(
-        '#type' => 'select',
-        '#title' => t('Language'),
-        '#default_value' => (isset($form['#node']->language) ? $form['#node']->language : ''),
-        '#options' => array('' => t('Language neutral')) + locale_language_list('name'),
-      );
-    }
-    // Node type without language selector: assign the default for new nodes
-    elseif (!isset($form['#node']->nid)) {
-      $default = language_default();
-      $form['language'] = array(
-        '#type' => 'value',
-        '#value' => $default->language
-      );
-    }
-  }
-}
-
-/**
  * Implement hook_theme().
  */
 function locale_theme() {
Index: modules/locale/locale.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/locale/locale.test,v
retrieving revision 1.33
diff -u -p -r1.33 locale.test
--- modules/locale/locale.test	3 Aug 2009 03:04:33 -0000	1.33
+++ modules/locale/locale.test	4 Aug 2009 22:39:03 -0000
@@ -1216,7 +1216,7 @@ class LocalePathFunctionalTest extends D
   }
 
   function setUp() {
-    parent::setUp('locale', 'path');
+    parent::setUp('node', 'locale', 'path');
   }
 
   /**
@@ -1299,7 +1299,7 @@ class LocaleContentFunctionalTest extend
   }
 
   function setUp() {
-    parent::setUp('locale');
+    parent::setUp('node', 'locale');
   }
 
   /**
Index: modules/node/content_types.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/content_types.inc,v
retrieving revision 1.84
diff -u -p -r1.84 content_types.inc
--- modules/node/content_types.inc	29 Jul 2009 06:39:34 -0000	1.84
+++ modules/node/content_types.inc	4 Aug 2009 22:39:03 -0000
@@ -163,12 +163,20 @@ function node_type_form(&$form_state, $t
     '#default_value' => variable_get('node_options_' . $type->type, array('status', 'promote')),
     '#options' => array(
       'status' => t('Published'),
-      'promote' => t('Promoted to front page'),
+      'promote' => t('Promoted to <em>/node</em>'),
       'sticky' => t('Sticky at top of lists'),
       'revision' => t('Create new revision'),
     ),
     '#description' => t('Users with the <em>administer nodes</em> permission will be able to override these options.'),
   );
+  if (module_exists('locale')) {
+    $form['workflow']['node_type_language'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Multilingual support'),
+      '#default_value' => variable_get('node_type_language_' . $form['#node_type']->type, 0),
+      '#description' => t('Add a language selection field to the editing form, allowing you to select from one of the <a href="!languages">enabled languages</a>. If disabled, new posts are saved with the default language. Existing content will not be affected by changing this option.', array('!languages' => url('admin/international/language'))),
+    );
+  }
   $form['display'] = array(
     '#type' => 'fieldset',
     '#title' => t('Display settings'),
Index: modules/node/node.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.admin.inc,v
retrieving revision 1.60
diff -u -p -r1.60 node.admin.inc
--- modules/node/node.admin.inc	30 Jul 2009 19:24:21 -0000	1.60
+++ modules/node/node.admin.inc	4 Aug 2009 22:39:04 -0000
@@ -7,6 +7,116 @@
  */
 
 /**
+ * Implement hook_form_FORM_ID_alter().
+ */
+function node_form_system_themes_form_alter(&$form, $form_state) {
+  $form['admin_theme']['node_admin_theme'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Use administration theme for content editing'),
+    '#description' => t('Use the administration theme when editing existing posts or creating new ones.'),
+    '#default_value' => variable_get('node_admin_theme', '0'),
+  );
+}
+
+/**
+ * Implement hook_form_FORM_ID_alter().
+ */
+function node_form_block_admin_configure_alter(&$form, $form_state) {
+  if (count(node_type_get_names())) {
+    $form['#submit'][] = 'node_block_admin_configure_submit';
+    $default_type_options = db_query("SELECT type FROM {node_block_visibility} WHERE module = :module AND delta = :delta", array(
+      ':module' => $form['module']['#value'],
+      ':delta' => $form['delta']['#value'],
+    ))->fetchCol();
+    $form['content_type_vis_settings'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Content type specific visibility settings'),
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+    );
+    $form['content_type_vis_settings']['types'] = array(
+      '#type' => 'checkboxes',
+      '#title' => t('Show block for specific content types'),
+      '#default_value' => $default_type_options,
+      '#options' => node_type_get_names(),
+      '#description' => t('Show this block only when on a page displaying a post of the given type(s). If you select no types, there will be no type specific limitation.'),
+    );
+    $form['submit']['#weight'] = 1;
+  }
+}
+
+/**
+ * Form submit handler for block_admin_configure().
+ */
+function node_block_admin_configure_submit($form, &$form_state) {
+  $values = $form_state['values'];
+  db_delete('node_block_visibility')
+    ->condition('module', $values['module'])
+    ->condition('delta', $values['delta'])
+    ->execute();
+  $query = db_insert('node_block_visibility')->fields(array('type', 'module', 'delta'));
+  foreach (array_filter($values['types']) as $type) {
+    $query->values(array(
+      'type' => $type,
+      'module' => $values['module'],
+      'delta' => $values['delta'],
+    ));
+  }
+  $query->execute();
+}
+
+/**
+ * Implement hook_form_FORM_ID_alter().
+ */
+function node_form_block_add_block_form_alter(&$form, $form_state) {
+  node_form_block_admin_configure_alter($form);
+}
+
+/**
+ * Implement hook_form_FORM_ID_alter().
+ */
+function node_form_system_performance_settings_alter($form, &$form_state) {
+  if (count(module_implements('node_grants'))) {
+    $form['block_cache']['block_cache'] = array(
+      '#disabled' => TRUE,
+      '#description' => t('Block caching is inactive because modules defining content access restrictions are enabled.'),
+    );
+  }
+}
+
+/**
+ * Implement hook_modules_enabled().
+ */
+function node_modules_enabled($modules) {
+  node_types_rebuild();
+  foreach ($modules as $module) {
+    if (!node_access_needs_rebuild() && module_hook($module, 'node_grants')) {
+      node_access_needs_rebuild(TRUE);
+    }
+  }
+}
+
+/**
+ * Implement hook_modules_disabled().
+ */
+function node_modules_disabled($modules) {
+  if (!node_access_needs_rebuild()) {
+    $node_grants = array();
+    foreach ($modules as $module) {
+      // Check if node_access table needs rebuilding.
+      if (module_hook($module, 'node_grants')) {
+        $node_grants = $module;
+      }
+    }
+
+    // If there remains no more node_access module, rebuild permissions.
+    if (!empty($node_grants) && count(array_diff(module_implements('node_grants'), $node_grants)) == 0) {
+      node_access_rebuild();
+    }
+  }
+}
+
+/**
  * Menu callback: confirm rebuilding of permissions.
  */
 function node_configure_rebuild_confirm() {
Index: modules/node/node.info
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.info,v
retrieving revision 1.11
diff -u -p -r1.11 node.info
--- modules/node/node.info	8 Jun 2009 09:23:53 -0000	1.11
+++ modules/node/node.info	4 Aug 2009 22:39:04 -0000
@@ -1,5 +1,5 @@
 ; $Id: node.info,v 1.11 2009/06/08 09:23:53 dries Exp $
-name = Node
+name = Content
 description = Allows content to be submitted to the site and displayed on pages.
 package = Core
 version = VERSION
@@ -10,4 +10,3 @@ files[] = node.admin.inc
 files[] = node.pages.inc
 files[] = node.install
 files[] = node.test
-required = TRUE
Index: modules/node/node.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.install,v
retrieving revision 1.25
diff -u -p -r1.25 node.install
--- modules/node/node.install	27 Jul 2009 19:26:31 -0000	1.25
+++ modules/node/node.install	4 Aug 2009 22:39:04 -0000
@@ -331,10 +331,102 @@ function node_schema() {
     'primary key' => array('type'),
   );
 
+  $schema['history'] = array(
+    'description' => 'A record of which {users} have read which {node}s.',
+    'fields' => array(
+      'uid' => array(
+        'description' => 'The {users}.uid that read the {node} nid.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'nid' => array(
+        'description' => 'The {node}.nid that was read.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'timestamp' => array(
+        'description' => 'The Unix timestamp at which the read occurred.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+    ),
+    'primary key' => array('uid', 'nid'),
+    'indexes' => array(
+      'nid' => array('nid'),
+    ),
+  );
+
+  $schema['node_block_visibility'] = array(
+    'description' => 'Sets up display criteria for blocks based on content types',
+    'fields' => array(
+      'module' => array(
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => TRUE,
+        'description' => "The block's origin module, from {block}.module.",
+      ),
+      'delta' => array(
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE,
+        'description' => "The block's unique delta within module, from {block}.delta.",
+      ),
+      'type' => array(
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE,
+        'description' => "The machine-readable name of this type from {node_type}.type.",
+      ),
+    ),
+    'primary key' => array('module', 'delta', 'type'),
+    'indexes' => array(
+      'type' => array('type'),
+    ),
+  );
+
   return $schema;
 }
 
 /**
+ * Implementation of hook_install().
+ */
+function node_install() {
+  drupal_install_schema('node');
+
+  db_insert('node_access')
+    ->fields(array(
+      'nid' => 0,
+      'gid' => 0,
+      'realm' => 'all',
+      'grant_view' => 1,
+      'grant_update' => 0,
+      'grant_delete' => 0,
+    ))
+    ->execute();
+
+  variable_set('node_options_forum', array(0 => 'status'));
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function node_uninstall() {
+  global $conf;
+
+  $variables = db_query("SELECT name FROM {variable} WHERE name LIKE 'node_%'")->fetchCol();
+  foreach ($variables as $variable) {
+    unset($conf[$variable]);
+  }
+  db_query("DELETE FROM {variable} WHERE name LIKE 'node_%'");
+  cache_clear_all('variables', 'cache');
+
+  drupal_uninstall_schema('node');
+}
+
+/**
  * @defgroup updates-6.x-to-7.x System updates from 6.x to 7.x
  * @{
  */
Index: modules/node/node.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.js,v
retrieving revision 1.4
diff -u -p -r1.4 node.js
--- modules/node/node.js	27 Apr 2009 20:19:37 -0000	1.4
+++ modules/node/node.js	4 Aug 2009 22:39:04 -0000
@@ -29,6 +29,11 @@ Drupal.behaviors.nodeFieldsetSummaries =
       }
       return vals.join(', ');
     });
+
+    $('fieldset#edit-language-information', context).setSummary(function (context) {
+      var element = $('#edit-language-1');
+      return element.find('option[value=' + element.val() + ']').text();
+    });
   }
 };
 
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.1090
diff -u -p -r1.1090 node.module
--- modules/node/node.module	31 Jul 2009 19:01:02 -0000	1.1090
+++ modules/node/node.module	4 Aug 2009 22:39:06 -0000
@@ -174,6 +174,38 @@ function node_field_build_modes($obj_typ
 }
 
 /**
+ * Implement hook_block_list_alter().
+ */
+function node_block_list_alter(&$blocks) {
+  global $user, $theme_key;
+
+  // Check if this is a node page and store the node type.
+  $node = menu_get_object('node');
+  if ($node) {
+    $node_type = $node->type;
+  }
+  elseif (arg(0) == 'node' && arg(1) == 'add') {
+    $node_type = arg(2);
+  }
+
+  if (isset($node_type)) {
+    // Build an array of node types for each block.
+    $block_node_types = array();
+    $result = db_query("SELECT module, delta, type FROM {node_block_visibility}");
+    foreach ($result as $record) {
+      $block_node_types[$record->module][$record->delta][] = $record->type;
+    }
+
+    foreach ($blocks as &$block) {
+      // Only apply restrictions to the current theme's active blocks.
+      if ($block->theme == $theme_key && $block->status == 1 && isset($block_node_types[$block->module][$block->delta]) && !in_array($node_type, $block_node_types[$block->module][$block->delta])) {
+        unset($block);
+      }
+    }
+  }
+}
+
+/**
  * Gather a listing of links to nodes.
  *
  * @param $result
@@ -387,8 +419,6 @@ function node_types_rebuild() {
   // Reset cached node type information so that the next access
   // will use the updated data.
   node_type_clear();
-  // This is required for proper menu items at node/add/type.
-  menu_rebuild();
 }
 
 /**
@@ -517,6 +547,10 @@ function node_type_delete($type) {
   db_delete('node_type')
     ->condition('type', $type)
     ->execute();
+  db_delete('node_block_visibility')
+    ->condition('type', $type)
+    ->execute();
+  variable_del('node_type_language_' . $type);
   module_invoke_all('node_type', 'delete', $info);
 }
 
@@ -1699,7 +1733,7 @@ function node_menu() {
   );
   $items['node'] = array(
     'title' => 'Content',
-    'page callback' => 'node_page_default',
+    'page callback' => 'node_page',
     'access arguments' => array('access content'),
     'type' => MENU_CALLBACK,
   );
@@ -1971,7 +2005,7 @@ function node_build_multiple($nodes, $bu
 /**
  * Menu callback; Generate a listing of promoted nodes.
  */
-function node_page_default() {
+function node_page() {
   $select = db_select('node', 'n')
     ->fields('n', array('nid'))
     ->condition('promote', 1)
@@ -1994,27 +2028,17 @@ function node_page_default() {
       '#theme' => 'pager',
       '#weight' => 5,
     );
-    drupal_set_title('');
   }
   else {
-    drupal_set_title(t('Welcome to @site-name', array('@site-name' => variable_get('site_name', 'Drupal'))));
-
-    $default_message = '<p>' . t('No front page content has been created yet.') . '</p>';
-
-    if (user_access('access administration pages')) {
-      $default_links = array (
-        l(t('Create content'), 'node/add'),
-        l(t('Change the default front page'), 'admin/settings/site-information'),
-      );
-      $default_message .= theme('item_list', $default_links);
-    }
-
-    $build['default_message'] = array(
-      '#markup' => $default_message,
+    $build['message'] = array(
+      '#markup' => t('No content has been promoted yet.'),
       '#prefix' => '<div id="first-time">',
       '#suffix' => '</div>',
     );
   }
+
+  drupal_set_title('');
+
   return $build;
 }
 
@@ -3163,3 +3187,15 @@ function node_requirements($phase) {
   );
   return $requirements;
 }
+
+/**
+ * Preprocess variables for page.tpl.php
+ */
+function node_preprocess_page(&$variables) {
+  if ($node = menu_get_object()) {
+    $variables['node'] = $node;
+    if ($node->type) {
+      $variables['classes_array'][] = 'node-type-' . form_clean_id($node->type);
+    }
+  }
+}
\ No newline at end of file
Index: modules/node/node.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v
retrieving revision 1.72
diff -u -p -r1.72 node.pages.inc
--- modules/node/node.pages.inc	29 Jul 2009 06:39:34 -0000	1.72
+++ modules/node/node.pages.inc	4 Aug 2009 22:39:06 -0000
@@ -158,6 +158,30 @@ function node_form(&$form_state, $node) 
     '#type' => 'vertical_tabs',
   );
 
+  if (TRUE || variable_get('language_content_type_' . $form['#node']->type, 0)) {
+    $form['language_information'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Language'),
+      '#collapsible' => TRUE,
+      '#collapsed' => isset($form['#node']->language),
+      '#group' => 'additional_settings',
+      '#attached_js' => array(drupal_get_path('module', 'node') . '/node.js'),
+    );
+    $form['language_information']['language'] = array(
+      '#type' => 'select',
+      '#title' => t('Language'),
+      '#default_value' => (isset($form['#node']->language) ? $form['#node']->language : ''),
+      '#options' => array('' => t('Language neutral')) + locale_language_list('name'),
+    );
+  }
+  // Node type without language selector: assign the default for new nodes
+  elseif (!isset($form['#node']->nid)) {
+    $form['language'] = array(
+      '#type' => 'value',
+      '#value' => language_default()->language,
+    );
+  }
+
   // Add a log field if the "Create new revision" option is checked, or if the
   // current user has the ability to check that option.
   if (!empty($node->revision) || user_access('administer nodes')) {
@@ -235,7 +259,7 @@ function node_form(&$form_state, $node) 
   );
   $form['options']['promote'] = array(
     '#type' => 'checkbox',
-    '#title' => t('Promoted to front page'),
+    '#title' => t('Promoted to <em>/node</em>'),
     '#default_value' => $node->promote,
   );
   $form['options']['sticky'] = array(
Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.167
diff -u -p -r1.167 system.admin.inc
--- modules/system/system.admin.inc	3 Aug 2009 06:06:23 -0000	1.167
+++ modules/system/system.admin.inc	4 Aug 2009 22:39:08 -0000
@@ -222,12 +222,6 @@ function system_themes_form() {
     '#description' => t('Choose which theme the administration pages should display in. If you choose "Default theme" the administration pages will use the same theme as the rest of the site.'),
     '#default_value' => variable_get('admin_theme', 0),
   );
-  $form['admin_theme']['node_admin_theme'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Use administration theme for content editing'),
-    '#description' => t('Use the administration theme when editing existing posts or creating new ones.'),
-    '#default_value' => variable_get('node_admin_theme', '0'),
-  );
 
   $form['buttons']['submit'] = array(
     '#type' => 'submit',
@@ -943,8 +937,8 @@ function system_modules_submit($form, &$
 
   // Clear all caches.
   registry_rebuild();
+  menu_rebuild();
   drupal_theme_rebuild();
-  node_types_rebuild();
   cache_clear_all('schema', 'cache');
   drupal_clear_css_cache();
   drupal_clear_js_cache();
@@ -1224,9 +1218,9 @@ function system_site_information_setting
   $form['site_frontpage'] = array(
     '#type' => 'textfield',
     '#title' => t('Default front page'),
-    '#default_value' => 'node',
+    '#default_value' => 'frontpage',
     '#size' => 40,
-    '#description' => t('The home page displays content from this relative URL. If unsure, specify "node".'),
+    '#description' => t('The home page displays content from this relative URL. If unsure, specify %frontpage.', array('%frontpage' => 'frontpage')),
     '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q='),
     '#required' => TRUE,
   );
Index: modules/system/system.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.install,v
retrieving revision 1.362
diff -u -p -r1.362 system.install
--- modules/system/system.install	3 Aug 2009 03:04:33 -0000	1.362
+++ modules/system/system.install	4 Aug 2009 22:39:09 -0000
@@ -312,7 +312,7 @@ function system_requirements($phase) {
  */
 function system_install() {
   // Create tables.
-  $modules = array('system', 'filter', 'user', 'node');
+  $modules = array('system', 'filter', 'user');
   foreach ($modules as $module) {
     drupal_install_schema($module);
   }
@@ -386,17 +386,6 @@ function system_install() {
     ->condition('name', 'garland')
     ->execute();
 
-  db_insert('node_access')
-    ->fields(array(
-      'nid' => 0,
-      'gid' => 0,
-      'realm' => 'all',
-      'grant_view' => 1,
-      'grant_update' => 0,
-      'grant_delete' => 0,
-    ))
-    ->execute();
-
   // Add text formats.
   $filtered_html_format = db_insert('filter_format')
     ->fields(array(
@@ -473,8 +462,6 @@ function system_install() {
   // Set the default input format to Filtered HTML.
   variable_set('filter_default_format', $filtered_html_format);
 
-  variable_set('node_options_forum', array(0 => 'status'));
-
   $cron_key = md5(mt_rand());
 
   variable_set('cron_key', $cron_key);
@@ -779,33 +766,6 @@ function system_schema() {
     ),
   );
 
-  $schema['history'] = array(
-    'description' => 'A record of which {users} have read which {node}s.',
-    'fields' => array(
-      'uid' => array(
-        'description' => 'The {users}.uid that read the {node} nid.',
-        'type' => 'int',
-        'not null' => TRUE,
-        'default' => 0,
-      ),
-      'nid' => array(
-        'description' => 'The {node}.nid that was read.',
-        'type' => 'int',
-        'not null' => TRUE,
-        'default' => 0,
-      ),
-      'timestamp' => array(
-        'description' => 'The Unix timestamp at which the read occurred.',
-        'type' => 'int',
-        'not null' => TRUE,
-        'default' => 0,
-      ),
-    ),
-    'primary key' => array('uid', 'nid'),
-    'indexes' => array(
-      'nid' => array('nid'),
-    ),
-  );
   $schema['menu_router'] = array(
     'description' => 'Maps paths to various callbacks (access, page and title)',
     'fields' => array(
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.735
diff -u -p -r1.735 system.module
--- modules/system/system.module	3 Aug 2009 06:06:23 -0000	1.735
+++ modules/system/system.module	4 Aug 2009 22:39:11 -0000
@@ -786,12 +786,23 @@ function system_menu() {
     'access arguments' => array('administer site configuration'),
     'type' => MENU_CALLBACK,
   );
+
   // Default page for batch operations.
   $items['batch'] = array(
     'page callback' => 'system_batch_page',
     'access callback' => TRUE,
     'type' => MENU_CALLBACK,
   );
+
+  // Default front page.
+  $items['frontpage'] = array(
+    'title' => 'Front page',
+    'description' => 'The default front page.',
+    'page callback' => 'system_frontpage',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK,
+  );
+
   return $items;
 }
 
@@ -3086,3 +3097,28 @@ function system_retrieve_file($url, $des
   
   return $local;
 }
+
+/**
+ * Display the default front page.
+ */
+function system_frontpage() {
+  drupal_set_title(t('Welcome to @site-name', array('@site-name' => variable_get('site_name', 'Drupal'))));
+
+  $message = '<p>' . t('No front page content has been created yet.') . '</p>';
+
+  if (user_access('access administration pages')) {
+    $links = array (l(t('Change the default front page'), 'admin/settings/site-information'));
+    if (module_exists('node')) {
+      array_unshift($links, l(t('Create content'), 'node/add'));
+    }
+    $message .= theme('item_list', $links);
+  }
+
+  $build['message'] = array(
+    '#markup' => $message,
+    '#prefix' => '<div id="first-time">',
+    '#suffix' => '</div>',
+  );
+
+  return $build;
+}
\ No newline at end of file
Index: modules/taxonomy/taxonomy.info
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.info,v
retrieving revision 1.9
diff -u -p -r1.9 taxonomy.info
--- modules/taxonomy/taxonomy.info	8 Jun 2009 09:23:54 -0000	1.9
+++ modules/taxonomy/taxonomy.info	4 Aug 2009 22:39:12 -0000
@@ -9,3 +9,4 @@ files[] = taxonomy.admin.inc
 files[] = taxonomy.pages.inc
 files[] = taxonomy.install
 files[] = taxonomy.test
+dependencies[] = node
\ No newline at end of file
Index: modules/taxonomy/taxonomy.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.test,v
retrieving revision 1.42
diff -u -p -r1.42 taxonomy.test
--- modules/taxonomy/taxonomy.test	3 Aug 2009 20:19:29 -0000	1.42
+++ modules/taxonomy/taxonomy.test	4 Aug 2009 22:39:13 -0000
@@ -53,7 +53,7 @@ class TaxonomyVocabularyFunctionalTest e
   }
 
   function setUp() {
-    parent::setUp();
+    parent::setUp('node');
     $this->admin_user = $this->drupalCreateUser(array('administer taxonomy'));
     $this->drupalLogin($this->admin_user);
     $this->vocabulary = $this->createVocabulary();
@@ -314,6 +314,10 @@ class TaxonomyTermUnitTest extends Taxon
     );
   }
 
+  function setUp() {
+    parent::setUp('node');
+  }
+
   /**
    * Tests for taxonomy_term_count_nodes().
    *
@@ -388,7 +392,7 @@ class TaxonomyTermTestCase extends Taxon
   }
 
   function setUp() {
-    parent::setUp('taxonomy');
+    parent::setUp('node', 'taxonomy');
     $this->admin_user = $this->drupalCreateUser(array('administer taxonomy', 'bypass node access'));
     $this->drupalLogin($this->admin_user);
     $this->vocabulary = $this->createVocabulary();
Index: modules/translation/translation.info
===================================================================
RCS file: /cvs/drupal/drupal/modules/translation/translation.info,v
retrieving revision 1.5
diff -u -p -r1.5 translation.info
--- modules/translation/translation.info	8 Jun 2009 09:23:54 -0000	1.5
+++ modules/translation/translation.info	4 Aug 2009 22:39:13 -0000
@@ -1,6 +1,7 @@
 ; $Id: translation.info,v 1.5 2009/06/08 09:23:54 dries Exp $
 name = Content translation
 description = Allows content to be translated into different languages.
+dependencies[] = node
 dependencies[] = locale
 package = Core
 version = VERSION
Index: profiles/default/default.info
===================================================================
RCS file: /cvs/drupal/drupal/profiles/default/default.info,v
retrieving revision 1.1
diff -u -p -r1.1 default.info
--- profiles/default/default.info	15 Jul 2009 02:08:41 -0000	1.1
+++ profiles/default/default.info	4 Aug 2009 22:39:13 -0000
@@ -3,6 +3,7 @@ name = Drupal
 description = Create a Drupal site with the most commonly used features pre-installed.
 version = VERSION
 core = 7.x
+dependencies[] = node
 dependencies[] = block
 dependencies[] = color
 dependencies[] = comment
Index: profiles/expert/expert.info
===================================================================
RCS file: /cvs/drupal/drupal/profiles/expert/expert.info,v
retrieving revision 1.1
diff -u -p -r1.1 expert.info
--- profiles/expert/expert.info	15 Jul 2009 02:08:41 -0000	1.1
+++ profiles/expert/expert.info	4 Aug 2009 22:39:13 -0000
@@ -3,5 +3,6 @@ name = Drupal (minimal)
 description = Create a Drupal site with only required modules enabled.
 version = VERSION
 core = 7.x
+dependencies[] = node
 dependencies[] = block
 dependencies[] = dblog
