? sites/default/files
? sites/default/settings.php
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.1273
diff -u -p -r1.1273 node.module
--- modules/node/node.module	17 May 2010 07:43:36 -0000	1.1273
+++ modules/node/node.module	22 May 2010 23:21:53 -0000
@@ -2443,7 +2443,7 @@ function node_page_default() {
     ->orderBy('sticky', 'DESC')
     ->orderBy('created', 'DESC')
     ->extend('PagerDefault')
-    ->limit(variable_get('default_nodes_main', 10))
+    ->limit(variable_get('default_nodes_front', variable_get('default_nodes_main', 10)))
     ->addTag('node_access');
 
   $nids = $select->execute()->fetchCol();
Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.284
diff -u -p -r1.284 system.admin.inc
--- modules/system/system.admin.inc	21 May 2010 11:37:55 -0000	1.284
+++ modules/system/system.admin.inc	22 May 2010 23:21:55 -0000
@@ -1519,20 +1519,11 @@ function system_site_information_setting
     '#description' => t("The <em>From</em> address in automated e-mails sent during registration and new password requests, and other notifications. (Use an address ending in your site's domain to help prevent this e-mail being flagged as spam.)"),
     '#required' => TRUE,
   );
-  $form['site_frontpage'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Default front page'),
-    '#default_value' => drupal_get_path_alias(variable_get('site_frontpage', 'node')),
-    '#size' => 40,
-    '#description' => t('The home page displays content from this relative URL. If unsure, specify "node".'),
-    '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q='),
-    '#required' => TRUE,
-  );
   $form['default_nodes_main'] = array(
-    '#type' => 'select', '#title' => t('Number of posts on front page'),
+    '#type' => 'select', '#title' => t('Number of posts on overview pages'),
     '#default_value' => variable_get('default_nodes_main', 10),
     '#options' => drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30)),
-    '#description' => t('The maximum number of posts displayed on overview pages such as the front page.')
+    '#description' => t('The maximum number of posts displayed on overview pages such as taxonomies.  Posts on the front page can be configured at <a href="@front-page">Front Page</a>.', array('@front-page' => url('admin/structure/front-page')))
   );
   $form['site_403'] = array(
     '#type' => 'textfield',
@@ -1571,8 +1562,48 @@ function system_site_information_setting
   if ($error = user_validate_mail($form_state['values']['site_mail'])) {
     form_set_error('site_mail', $error);
   }
+}
+
+/**
+ * Form builder; prints front page configuration
+ */
+function system_front_page_settings() {
+  $form['front_path'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Specify a Path'),
+  );
+  $form['front_path']['site_frontpage'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Default front page'),
+    '#default_value' => drupal_get_path_alias(variable_get('site_frontpage', 'node')),
+    '#size' => 40,
+    '#description' => t('The home page displays content from this relative URL.  If unsure, specify "node" to use the default content feed.'),
+    '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q='),
+    '#required' => TRUE,
+  );
+  
+  $form['front_feed'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Content Feed'),
+  );
+  $form['front_feed']['default_nodes_front'] = array(
+    '#type' => 'select', '#title' => t('Number of posts on front page'),
+    '#default_value' => variable_get('default_nodes_front', variable_get('default_nodes_main', 10)),
+    '#options' => drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30)),
+    '#description' => t('The maximum number of posts displayed on the front page.  Default: <strong>@default-nodes posts</strong>.', array('@default-nodes' => variable_get('default_nodes_main', 10)))
+  );
+  
+  $form['#validate'][] = 'system_front_page_settings_validate';
+
+  return system_settings_form($form, FALSE);
+}
+
+/**
+ * Validate the submitted front page settings form.
+ */
+function system_front_page_settings_validate($form, &$form_state) {
   // Get the normal path of the front page.
-  form_set_value($form['site_frontpage'], drupal_get_normal_path($form_state['values']['site_frontpage']), $form_state);
+  form_set_value($form['front_path']['site_frontpage'], drupal_get_normal_path($form_state['values']['site_frontpage']), $form_state);
   // Validate front page path.
   if (!drupal_valid_path($form_state['values']['site_frontpage'])) {
     form_set_error('site_frontpage', t("The path '@path' is either invalid or you do not have access to it.", array('@path' => $form_state['values']['site_frontpage'])));
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.933
diff -u -p -r1.933 system.module
--- modules/system/system.module	20 May 2010 08:47:00 -0000	1.933
+++ modules/system/system.module	22 May 2010 23:21:57 -0000
@@ -138,6 +138,8 @@ function system_help($path, $arg) {
       return '<p>' . t('IP addresses listed here are blocked from your site before any modules are loaded. You may add IP addresses to the list, or delete existing entries.') . '</p>';
     case 'admin/reports/status':
       return '<p>' . t("Here you can find a short overview of your site's parameters as well as any problems detected with your installation. It may be useful to copy and paste this information into support requests filed on drupal.org's support forums and project issue queues.") . '</p>';
+    case 'admin/structure/front-page':
+      return '<p>' . t('The site front page can use the default feed of most recent content, with a configurable number of posts displayed, or set to display a different path, such as a static page.  <a href="@blocks">Blocks</a> can be added in either case to display additional information.', array('@blocks' => url('admin/structure/block'))) . '</p>';
   }
 }
 
@@ -556,13 +558,23 @@ function system_menu() {
   // Menu items that are basically just menu blocks.
   $items['admin/structure'] = array(
     'title' => 'Structure',
-    'description' => 'Administer blocks, content types, menus, etc.',
+    'description' => 'Administer blocks, content types, front page, menus, etc.',
     'position' => 'right',
     'weight' => -8,
     'page callback' => 'system_admin_menu_block_page',
     'access arguments' => array('access administration pages'),
     'file' => 'system.admin.inc',
   );
+  // Front page.
+  $items['admin/structure/front-page'] = array(
+    'title' => 'Front Page',
+    'description' => 'Administer content shown on the front page.',
+    'position' => 'left',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('system_front_page_settings'),
+    'access arguments' => array('access administration pages'),
+    'file' => 'system.admin.inc',
+  );
   // Appearance.
   $items['admin/appearance'] = array(
     'title' => 'Appearance',
@@ -957,7 +969,7 @@ function system_menu() {
   );
   $items['admin/config/system/site-information'] = array(
     'title' => 'Site information',
-    'description' => 'Change site name, e-mail address, slogan, default front page, number of posts per page, error pages and cron.',
+    'description' => 'Change site name, e-mail address, slogan, number of posts per page, error pages, and cron.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('system_site_information_settings'),
     'access arguments' => array('administer site configuration'),
Index: modules/system/system.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.test,v
retrieving revision 1.124
diff -u -p -r1.124 system.test
--- modules/system/system.test	20 Apr 2010 09:48:06 -0000	1.124
+++ modules/system/system.test	22 May 2010 23:21:58 -0000
@@ -1012,12 +1012,12 @@ class FrontPageTestCase extends DrupalWe
 
     // Change the front page to an invalid path.
     $edit = array('site_frontpage' => 'kittens');
-    $this->drupalPost('admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalPost('admin/structure/front-page', $edit, t('Save configuration'));
     $this->assertText(t("The path '@path' is either invalid or you do not have access to it.", array('@path' => $edit['site_frontpage'])));
 
     // Change the front page to a valid path.
     $edit['site_frontpage'] = $this->node_path;
-    $this->drupalPost('admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalPost('admin/structure/front-page', $edit, t('Save configuration'));
     $this->assertText(t('The configuration options have been saved.'), t('The front page path has been saved.'));
 
     $this->drupalGet('');
