diff --git a/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.features.content.inc b/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.features.content.inc
new file mode 100644
index 0000000..921a1f9
--- /dev/null
+++ b/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.features.content.inc
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * Implementation of hook_content_default_fields().
+ */
+function drupalorg_packaging_whitelist_content_default_fields() {
+  $fields = array();
+
+  // Exported field: field_packaging_whitelist_urls
+  $fields['packaging_whitelist-field_packaging_whitelist_urls'] = array(
+    'field_name' => 'field_packaging_whitelist_urls',
+    'type_name' => 'packaging_whitelist',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '2' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '3' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'token' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'text',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'text',
+    'active' => '1',
+    'text_processing' => '0',
+    'max_length' => '',
+    'allowed_values' => '',
+    'allowed_values_php' => '',
+    'widget' => array(
+      'rows' => '20',
+      'size' => 60,
+      'default_value' => array(
+        '0' => array(
+          'value' => '',
+          '_error_element' => 'default_value_widget][field_packaging_whitelist_urls][0][value',
+        ),
+      ),
+      'default_value_php' => NULL,
+      'label' => 'Allowed URLs',
+      'weight' => '-4',
+      'description' => '',
+      'type' => 'text_textarea',
+      'module' => 'text',
+    ),
+  );
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('Allowed URLs');
+
+  return $fields;
+}
diff --git a/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.features.inc b/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.features.inc
new file mode 100644
index 0000000..9f1cb84
--- /dev/null
+++ b/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.features.inc
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * Implementation of hook_node_info().
+ */
+function drupalorg_packaging_whitelist_node_info() {
+  $items = array(
+    'packaging_whitelist' => array(
+      'name' => t('Packaging Whitelist Entry'),
+      'module' => 'features',
+      'description' => t('This content type is used to define white-listed URLs for external code that can be packaged in install profiles.
+
+The title should be a human readable identifier for the entry and the body a newline separated list of URLs supporting wildcards.'),
+      'has_title' => '1',
+      'title_label' => t('Title'),
+      'has_body' => '0',
+      'body_label' => '',
+      'min_word_count' => '0',
+      'help' => '',
+    ),
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function drupalorg_packaging_whitelist_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.info b/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.info
new file mode 100644
index 0000000..b0e9513
--- /dev/null
+++ b/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.info
@@ -0,0 +1,12 @@
+core = "6.x"
+dependencies[] = "features"
+dependencies[] = "search"
+dependencies[] = "text"
+dependencies[] = "views"
+description = "Provide content type and views for packaging whitelist feature."
+features[content][] = "packaging_whitelist-field_packaging_whitelist_urls"
+features[node][] = "packaging_whitelist"
+features[views][] = "packaging_whitelist_items"
+features[views_api][] = "api:2"
+name = "Drupal.org Packaging Whitelist"
+package = "Features"
diff --git a/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.module b/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.module
new file mode 100644
index 0000000..e8394c8
--- /dev/null
+++ b/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.module
@@ -0,0 +1,34 @@
+<?php
+
+include_once('drupalorg_packaging_whitelist.features.inc');
+
+/**
+ * Implementation of hook_menu().
+ */
+function drupalorg_packaging_whitelist_menu() {
+  $items = array();
+
+  $items['packaging_whitelist/json'] = array(
+    'page callback' => 'drupalorg_packaging_whitelist_output',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+
+  return $items;
+}
+
+/**
+ * Return the JSON output for the packaging whitelist.
+ */
+function drupalorg_packaging_whitelist_output() {
+  $whitelist = array();
+
+  $result = db_query("SELECT nid FROM {node} WHERE type = 'packaging_whitelist' AND status = 1");
+  while ($row = db_fetch_object($result)) {
+    $node = node_load($row->nid) ;
+    $urls = preg_split('/(\r\n?|\n)/', $node->field_packaging_whitelist_urls[0]['value']);
+    $whitelist = array_merge($whitelist, $urls);
+  }
+
+  drupal_json($whitelist);
+}
diff --git a/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.views_default.inc b/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.views_default.inc
new file mode 100644
index 0000000..11085e9
--- /dev/null
+++ b/features/drupalorg_packaging_whitelist/drupalorg_packaging_whitelist.views_default.inc
@@ -0,0 +1,224 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function drupalorg_packaging_whitelist_views_default_views() {
+  $views = array();
+
+  // Exported view: packaging_whitelist_items
+  $view = new view;
+  $view->name = 'packaging_whitelist_items';
+  $view->description = '';
+  $view->tag = '';
+  $view->base_table = 'node';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'title' => array(
+      'label' => 'Whitelist name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 1,
+      'spaces' => array(
+        'type' => NULL,
+        'frontpage' => FALSE,
+      ),
+      'exclude' => 0,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'none',
+    ),
+    'field_packaging_whitelist_urls_value' => array(
+      'label' => 'URLs',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'label_type' => 'widget',
+      'format' => 'default',
+      'multiple' => array(
+        'group' => TRUE,
+        'multiple_number' => '',
+        'multiple_from' => '',
+        'multiple_reversed' => FALSE,
+      ),
+      'exclude' => 0,
+      'id' => 'field_packaging_whitelist_urls_value',
+      'table' => 'node_data_field_packaging_whitelist_urls',
+      'field' => 'field_packaging_whitelist_urls_value',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'title' => array(
+      'order' => 'ASC',
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'status' => array(
+      'operator' => '=',
+      'value' => '1',
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'relationship' => 'none',
+    ),
+    'type' => array(
+      'operator' => 'in',
+      'value' => array(
+        'packaging_whitelist' => 'packaging_whitelist',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'relationship' => 'none',
+    ),
+    'keys' => array(
+      'operator' => 'optional',
+      'value' => '',
+      'group' => '0',
+      'exposed' => TRUE,
+      'expose' => array(
+        'use_operator' => 0,
+        'operator' => 'keys_op',
+        'identifier' => 'keys',
+        'label' => 'Search Packaging Whitelists',
+        'optional' => 1,
+        'remember' => 0,
+      ),
+      'id' => 'keys',
+      'table' => 'search_index',
+      'field' => 'keys',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('row_plugin', 'node');
+  $handler->override_option('row_options', array(
+    'relationship' => 'none',
+    'build_mode' => 'full',
+    'links' => 0,
+    'comments' => 0,
+  ));
+  $handler = $view->new_display('feed', 'Feed', 'feed_1');
+  $handler->override_option('items_per_page', 20);
+  $handler->override_option('style_plugin', 'rss');
+  $handler->override_option('style_options', array(
+    'mission_description' => FALSE,
+    'description' => '',
+  ));
+  $handler->override_option('row_plugin', 'node_rss');
+  $handler->override_option('row_options', array(
+    'relationship' => 'none',
+    'item_length' => 'default',
+  ));
+  $handler->override_option('path', 'packaging_whitelists/rss');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler->override_option('displays', array(
+    'page_1' => 'page_1',
+    'default' => 0,
+  ));
+  $handler->override_option('sitename_title', FALSE);
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('path', 'packaging_whitelists');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
