? .DS_Store
? drupal_common_theme_00.patch
? drupal_common_theme_01.patch
? make_node_optional_11.patch
? make_node_optional_12.patch
? performance_settings_08.patch
? performance_settings_09.patch
? performance_settings_10.patch
? vocabulary_form_cleanup_08.patch
? vocabulary_form_cleanup_09.patch
? modules/.DS_Store
? profiles/.DS_Store
? sites/.DS_Store
? sites/default/files
? sites/default/settings.php
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 00:09:42 -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: 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 00:09:44 -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 00:09:44 -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 00:09:44 -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 00:09:44 -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/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 00:09:45 -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/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 00:09:45 -0000
@@ -7,6 +7,50 @@
  */
 
 /**
+ * Implementation of hook_form_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'),
+  );
+}
+
+/**
+ * Implementation of 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);
+    }
+  }
+}
+
+/**
+ * Implementation of 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 00:09:45 -0000
@@ -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 00:09:46 -0000
@@ -331,10 +331,74 @@ 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'),
+    ),
+  );
+
   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.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 00:09:50 -0000
@@ -387,8 +387,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();
 }
 
 /**
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 00:09:52 -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();
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 00:09:54 -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/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 00:09:57 -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 00:10:01 -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: 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 00:10:01 -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 00:10:01 -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
