← Back to team overview

cloud-init-dev team mailing list archive

[Merge] ~smoser/cloud-init:cleanup/tools-run-centos-use-git-clone into cloud-init:master

 

Scott Moser has proposed merging ~smoser/cloud-init:cleanup/tools-run-centos-use-git-clone into cloud-init:master.

Commit message:
tools: run-centos: git clone rather than tar.

I have lots of files in my checkout dir.  tar <dir> causes
all those files to get copied into the container.

This instead uses git clone and puts just the .git dir
into the container and then checks out the branch that was
checked out.

Requested reviews:
  cloud-init commiters (cloud-init-dev)

For more details, see:
https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/337499

using 'git clone' makes this work from a worktree.
I couldnt' figure out how to easily find "the real .git" if inside a worktree.

Figuring that out, and then just using 'tar -cf .git' would avoid the local tmpdir copy

-- 
Your team cloud-init commiters is requested to review the proposed merge of ~smoser/cloud-init:cleanup/tools-run-centos-use-git-clone into cloud-init:master.
diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..df79a3e
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,29 @@
+=== General Info ===
+Packaging branches for the Ubuntu development release are maintained in
+upstream git under ubuntu/devel branch.
+
+   git clone git://git.launchpad.net/cloud-init -b ubuntu/devel
+
+Stable release branches are also available in ubuntu/<codename>
+   $ git clone git://git.launchpad.net/cloud-init
+   $ cd cloud-init
+   $ git branch -r
+   origin/HEAD -> origin/master
+   origin/master
+   origin/ubuntu/devel
+   origin/ubuntu/precise
+   origin/ubuntu/trusty
+   origin/ubuntu/xenial
+
+Patches in debian/patches are stored un-applied.
+
+== New snapshot ==
+To pull a new upstream snapshot:
+
+ ./debian/new-upstream-snapshot ../trunk
+
+== Cherry Pick ==
+To cherry pick an upstream commit:
+ ./debian/cherry-pick <hash>
+
+That will add a patch to debian/patches/ and debian/patches/series.
diff --git a/debian/apport-launcher.py b/debian/apport-launcher.py
new file mode 100644
index 0000000..30fea31
--- /dev/null
+++ b/debian/apport-launcher.py
@@ -0,0 +1,6 @@
+'''Wrapper for cloudinit apport interface'''
+
+from cloudinit.apport import add_info as cloudinit_add_info
+
+def add_info(report, ui):
+    return cloudinit_add_info(report, ui)
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..314d8d5
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,3488 @@
+cloud-init (17.2-30-gf7deaf15-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - docs: Update RTD content for cloud-init subcommands.
+    - OVF: Extend well-known labels to include OVFENV. (LP: #1698669)
+    - Fix potential cases of uninitialized variables. (LP: #1744796)
+    - tests: Collect script output as binary, collect systemd journal, fix lxd.
+    - HACKING.rst: mention setting user name and email via git config.
+
+ -- Chad Smith <chad.smith@xxxxxxxxxxxxx>  Fri, 02 Feb 2018 09:51:14 -0700
+
+cloud-init (17.2-25-gc03bdd3d-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - Azure VM Preprovisioning support. [Douglas Jordan] (LP: #1734991)
+    - tools/read-version: Fix read-version when in a git worktree.
+    - docs: Fix typos in docs and one debug message. [Florian Grignon]
+    - btrfs: support resizing if root is mounted ro.
+      [Robert Schweikert] (LP: #1734787)
+    - OpenNebula: Improve network configuration support.
+      [Akihiko Ota] (LP: #1719157, #1716397, #1736750)
+
+ -- Chad Smith <chad.smith@xxxxxxxxxxxxx>  Wed, 24 Jan 2018 16:39:23 -0700
+
+cloud-init (17.2-20-g32a6a176-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - tests: Fix EC2 Platform to return console output as bytes.
+    - tests: Fix attempted use of /run in a test case.
+    - GCE: Improvements and changes to ssh key behavior for default user.
+      [Max Illfelder] (LP: #1670456, #1707033, #1707037, #1707039)
+    - subp: make ProcessExecutionError have expected types in stderr, stdout.
+    - tests: when querying ntp server, do not do dns resolution.
+    - Recognize uppercase vfat disk labels [James Penick] (LP: #1598783)
+    - tests: remove zesty as supported OS to test
+
+ -- Chad Smith <chad.smith@xxxxxxxxxxxxx>  Tue, 23 Jan 2018 20:10:44 -0700
+
+cloud-init (17.2-13-g6299e8d0-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - Do not log warning on config files that represent None. (LP: #1742479)
+    - tests: Use git hash pip dependency format for pylxd. [Chad Smith]
+    - tests: add integration requirements text file [Joshua Powers]
+    - MAAS: add check_instance_id based off oauth tokens. (LP: #1712680)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 15 Jan 2018 10:15:05 -0500
+
+cloud-init (17.2-9-gdf24daa8-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - tests: update apt sources list test [Joshua Powers]
+    - tests: clean up image properties [Joshua Powers]
+    - tests: rename test ssh keys to avoid appearance of leaking private keys.
+      [Joshua Powers]
+    - tests: Enable AWS EC2 Integration Testing [Joshua Powers]
+    - cli: cloud-init clean handles symlinks [Chad Smith] (LP: #1741093)
+    - SUSE: Add a basic test of network config rendering. [Robert Schweikert]
+    - Azure: Only bounce network when necessary. [Chad Smith] (LP: #1722668)
+    - lint: Fix lints seen by pylint version 1.8.1. [Chad Smith]
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 15 Jan 2018 06:42:30 -0500
+
+cloud-init (17.2-1-g4089e20c-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - cli: Fix error in cloud-init modules --mode=init.
+      (LP: #1736600)
+    - release 17.2
+
+ -- Chad Smith <chad.smith@xxxxxxxxxxxxx>  Fri, 15 Dec 2017 10:11:50 -0700
+
+cloud-init (17.1-60-ga30a3bb5-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - ds-identify: failure in NoCloud due to unset variable usage.
+      (LP: #1737704)
+    - tests: fix collect_console when not implemented [Joshua Powers]
+
+ -- Chad Smith <chad.smith@xxxxxxxxxxxxx>  Tue, 12 Dec 2017 12:03:08 -0700
+
+cloud-init (17.1-58-g703241a3-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - ec2: Use instance-identity doc for region and instance-id
+      [Andrew Jorgensen]
+    - tests: remove leaked tmp files in config drive tests.
+    - setup.py: Do not include rendered files in SOURCES.txt
+    - SUSE: remove delta in systemd local template for SUSE [Robert Schweikert]
+    - tests: move to using tox 1.7.5
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 11 Dec 2017 18:30:56 -0500
+
+cloud-init (17.1-53-ga5dc0f42-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - OVF: improve ds-identify to support finding OVF iso transport.
+      (LP: #1731868)
+    - VMware: Support for user provided pre and post-customization scripts
+      [Maitreyee Saikia]
+
+ -- Chad Smith <chad.smith@xxxxxxxxxxxxx>  Fri, 08 Dec 2017 14:46:36 -0700
+
+cloud-init (17.1-51-g05b2308a-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - citest: In NoCloudKVM provide keys via metadata not userdata.
+    - pylint: Update pylint to 1.7.1, run on tests/ and tools and fix
+      complaints. [Ryan Harper]
+    - Datasources: Formalize DataSource get_data and related properties.
+      [Chad Smith]
+    - cli: Add clean and status subcommands [Chad Smith]
+    - tests: consolidate platforms into specific dirs
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 07 Dec 2017 22:58:41 -0500
+
+cloud-init (17.1-46-g7acc9e68-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - ec2: Fix sandboxed dhclient background process cleanup.
+      [Chad Smith] (LP: #1735331)
+    - tests: NoCloudKVMImage do not modify the original local cache image.
+    - tests: Enable bionic in integration tests. [Joshua Powers]
+    - tests: Use apt-get to install a deb so that depends get resolved.
+    - sysconfig: Correctly render dns and dns search info.
+      [Ryan McCabe] (LP: #1705804)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 30 Nov 2017 21:59:55 -0500
+
+cloud-init (17.1-41-g76243487-0ubuntu1) bionic; urgency=medium
+
+  * debian/cloud-init.templates: Fix capitilazation in 'AliYun' name.
+    (LP: #1728186)
+  * New upstream snapshot.
+    - integration test: replace curtin test ppa with cloud-init test ppa.
+    - EC2: Fix bug using fallback_nic and metadata when restoring from cache.
+      (LP: #1732917)
+    - EC2: Kill dhclient process used in sandbox dhclient. (LP: #1732964)
+    - ntp: fix configuration template rendering for openSUSE and SLES
+      (LP: #1726572)
+    - centos: Provide the failed #include url in error messages
+    - Catch UrlError when #include'ing URLs [Andrew Jorgensen]
+    - hosts: Fix openSUSE and SLES setup for /etc/hosts and clarify docs.
+      [Robert Schweikert] (LP: #1731022)
+    - rh_subscription: Perform null checks for enabled and disabled repos.
+      [Dave Mulford]
+    - Improve warning message when a template is not found.
+      [Robert Schweikert] (LP: #1731035)
+    - Replace the temporary i9n.brickies.net with i9n.cloud-init.io.
+    - Azure: don't generate network configuration for SRIOV devices
+      (LP: #1721579)
+    - tests: address some minor feedback missed in last merge.
+    - tests: integration test cleanup and full pass of nocloud-kvm.
+    - Gentoo: chmod +x on all files in sysvinit/gentoo/
+      [ckonstanski] (LP: #1727126)
+
+ -- Chad Smith <chad.smith@xxxxxxxxxxxxx>  Mon, 20 Nov 2017 15:18:52 -0700
+
+cloud-init (17.1-27-geb292c18-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - EC2: Limit network config to fallback nic, fix local-ipv4 only
+      instances. (LP: #1728152)
+    - Gentoo: Use "rc-service" rather than "service".
+      [ckonstanski] (LP: #1727121)
+
+ -- Chad Smith <chad.smith@xxxxxxxxxxxxx>  Tue, 31 Oct 2017 12:51:10 -0600
+
+cloud-init (17.1-25-g17a15f9e-0ubuntu1) bionic; urgency=medium
+
+  * New upstream snapshot.
+    - resizefs: Fix regression when system booted with root=PARTUUID=
+      [Chad Smith] (LP: #1725067)
+    - tools: make yum package installation more reliable
+    - citest: fix remaining warnings raised by integration tests.
+    - citest: show the class actual class name in results.
+    - ntp: fix config module schema to allow empty ntp config
+      [Chad Smith] (LP: #1724951)
+    - tools: disable fastestmirror if using proxy [Joshua Powers]
+    - schema: Log debug instead of warning when jsonschema is not available.
+      (LP: #1724354)
+
+ -- Ryan Harper <ryan.harper@xxxxxxxxxxxxx>  Tue, 24 Oct 2017 10:40:00 -0500
+
+cloud-init (17.1-18-gd4f70470-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - simpletable: Fix get_string method to return table-formatted string
+      (LP: #1722566)
+
+ -- Chad Smith <chad.smith@xxxxxxxxxxxxx>  Tue, 10 Oct 2017 13:40:13 -0600
+
+cloud-init (17.1-17-g45d361cb-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - net: Handle bridge stp values of 0 and convert to boolean type
+      [Chad Smith]
+    - tools: Give specific --abbrev=8 to "git describe"
+    - network: bridge_stp value not always correct [Ryan Harper] (LP: #1721157)
+    - tests: re-enable tox with nocloud-kvm support [Joshua Powers]
+
+ -- Ryan Harper <ryan.harper@xxxxxxxxxxxxx>  Thu, 05 Oct 2017 16:15:34 -0500
+
+cloud-init (17.1-13-g7fd04255-0ubuntu1) artful; urgency=medium
+
+  * debian/copyright: dep5 updates, reorganize, add Apache 2.0 license.
+    (LP: #1718681)
+  * debian/control: drop dependency on python3-prettytable
+  * New upstream snapshot.
+    - systemd: remove limit on tasks created by cloud-init-final.service.
+      [Robert Schweikert] (LP: #1717969)
+    - suse: Support addition of zypper repos via cloud-config.
+      [Robert Schweikert] (LP: #1718675)
+    - tests: Combine integration configs and testcases [Joshua Powers]
+    - Azure, CloudStack: Support reading dhcp options from systemd-networkd.
+      [Dimitri John Ledkov] (LP: #1718029)
+    - packages/debian/copyright: remove mention of boto and MIT license
+    - systemd: only mention Before=apt-daily.service on debian based distros.
+      [Robert Schweikert]
+    - Add missing simpletable and simpletable tests for failed merge
+      [Chad Smith]
+    - Remove prettytable dependency, introduce simpletable [Andrew Jorgensen]
+    - debian/copyright: dep5 updates, reorganize, add Apache 2.0 license.
+      [Joshua Powers] (LP: #1718681)
+    - tests: remove dependency on shlex [Joshua Powers]
+    - AltCloud: Trust PATH for udevadm and modprobe.
+    - DataSourceOVF: use util.find_devs_with(TYPE=iso9660)
+      [Ryan Harper] (LP: #1718287)
+    - tests: remove a temp file used in bootcmd tests.
+
+ -- Ryan Harper <ryan.harper@xxxxxxxxxxxxx>  Tue, 03 Oct 2017 10:59:52 -0500
+
+cloud-init (17.1-0ubuntu1) artful; urgency=medium
+
+  * New upstream release.
+    - doc: document GCE datasource. [Arnd Hannemann]
+    - suse: updates to templates to support openSUSE and SLES.
+      [Robert Schweikert] (LP: #1718640)
+    - suse: Copy sysvinit files from redhat with slight changes.
+      [Robert Schweikert] (LP: #1718649)
+    - docs: fix sphinx module schema documentation [Chad Smith]
+    - tests: Add cloudinit package to all test targets [Chad Smith]
+    - Makefile: No longer look for yaml files in obsolete ./bin/.
+    - tests: fix ds-identify unit tests to set EC2_STRICT_ID_DEFAULT.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 22 Sep 2017 12:21:18 -0400
+
+cloud-init (0.7.9-283-g7eb3460b-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - ec2: Fix maybe_perform_dhcp_discovery to use /var/tmp as a tmpdir
+      [Chad Smith] (LP: #1717627)
+    - Azure: wait longer for SSH pub keys to arrive.
+      [Paul Meyer] (LP: #1717611)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 18 Sep 2017 20:41:53 -0400
+
+cloud-init (0.7.9-281-g10f067d8-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - GCE: Fix usage of user-data. (LP: #1717598)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 18 Sep 2017 17:03:22 -0400
+
+cloud-init (0.7.9-280-ge626966e-0ubuntu1) artful; urgency=medium
+
+  * debian/rules: install rsyslog file with 0644 mode instead of 0755.
+  * debian/rules, debian/apport-launcher.py: add an apport hook. (LP: #1607345)
+  * New upstream snapshot.
+    - cmdline: add collect-logs subcommand. [Chad Smith] (LP: #1607345)
+    - CloudStack: consider dhclient lease files named with a hyphen.
+      (LP: #1717147)
+    - resizefs: Drop check for read-only device file, do not warn on
+      overlayroot. [Chad Smith]
+    - Do not provide systemd-fsck drop-in which could cause ordering cycles.
+      [Balint Reczey] (LP: #1717477)
+    - tests: Enable the NoCloud KVM platform [Joshua Powers]
+    - resizefs: pass mount point to xfs_growfs [Dusty Mabe]
+    - vmware: Enable nics before sending the SUCCESS event. [Sankar Tanguturi]
+    - cloud-config modules: honor distros definitions in each module
+      [Chad Smith] (LP: #1715738, #1715690)
+    - chef: Add option to pin chef omnibus install version
+      [Ethan Apodaca] (LP: #1462693)
+    - tests: execute: support command as string [Joshua Powers]
+    - schema and docs: Add jsonschema to resizefs and bootcmd modules
+      [Chad Smith]
+    - tools: Add xkvm script, wrapper around qemu-system [Joshua Powers]
+    - vmware customization: return network config format
+      [Sankar Tanguturi] (LP: #1675063)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 15 Sep 2017 16:09:07 -0400
+
+cloud-init (0.7.9-267-g922c3c5c-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - Ec2: only attempt to operate at local mode on known platforms.
+      (LP: #1715128)
+    - Use /run/cloud-init for tempfile operations. (LP: #1707222)
+    - ds-identify: Make OpenStack return maybe on arch other than intel.
+      (LP: #1715241)
+    - tests: mock missed openstack metadata uri network_data.json
+      [Chad Smith] (LP: #1714376)
+    - relocate tests/unittests/helpers.py to cloudinit/tests
+      [Lars Kellogg-Stedman]
+    - tox: add nose timer output [Joshua Powers]
+    - upstart: do not package upstart jobs, drop ubuntu-init-switch module.
+    - tests: Stop leaking calls through unmocked metadata addresses
+      [Chad Smith] (LP: #1714117)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 07 Sep 2017 16:59:04 -0400
+
+cloud-init (0.7.9-259-g7e76c57b-0ubuntu1) artful; urgency=medium
+
+  * Disable upstart support, as upstart is no longer shipped in artful.
+    [Dimitri Ledkov]
+  * New upstream snapshot.
+    - distro: allow distro to specify a default locale [Ryan Harper]
+    - tests: fix two recently added tests for sles distro.
+    - url_helper: dynamically import oauthlib import from inside oauth_headers
+      [Chad Smith]
+    - tox: make xenial environment run with python3.6
+    - suse: Add support for openSUSE and return SLES to a working state.
+      [Robert Schweikert]
+    - GCE: Add a main to the GCE Datasource.
+    - ec2: Add IPv6 dhcp support to Ec2DataSource. [Chad Smith] (LP: #1639030)
+    - url_helper: fail gracefully if oauthlib is not available
+      [Lars Kellogg-Stedman] (LP: #1713760)
+    - cloud-init analyze: fix issues running under python 2. [Andrew Jorgensen]
+    - Configure logging module to always use UTC time.
+      [Ryan Harper] (LP: #1713158)
+    - Log a helpful message if a user script does not include shebang.
+      [Andrew Jorgensen]
+    - cli: Fix command line parsing of coniditionally loaded subcommands.
+      [Chad Smith] (LP: #1712676)
+    - doc: Explain error behavior in user data include file format.
+      [Jason Butz]
+    - cc_landscape & cc_puppet: Fix six.StringIO use in writing configs
+      [Chad Smith] (LP: #1699282, #1710932)
+    - schema cli: Add schema subcommand to cloud-init cli and cc_runcmd schema
+      [Chad Smith]
+    - Debian: Remove non-free repositories from apt sources template.
+      [Joonas Kylmälä] (LP: #1700091)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 30 Aug 2017 21:18:05 -0400
+
+cloud-init (0.7.9-243-ge74d775-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - tools: Add tooling for basic cloud-init performance analysis.
+      [Chad Smith] (LP: #1709761)
+    - network: add v2 passthrough and fix parsing v2 config with bonds/bridge
+      params [Ryan Harper] (LP: #1709180)
+    - doc: update capabilities with features available, link doc reference,
+      cli example [Ryan Harper]
+    - vcloud directory: Guest Customization support for passwords
+      [Maitreyee Saikia]
+    - ec2: Allow Ec2 to run in init-local using dhclient in a sandbox.
+      [Chad Smith] (LP: #1709772)
+    - cc_ntp: fallback on timesyncd configuration if ntp is not installable
+      [Ryan Harper] (LP: #1686485)
+    - net: Reduce duplicate code. Have get_interfaces_by_mac use
+      get_interfaces.
+    - tests: Fix build tree integration tests [Joshua Powers]
+    - sysconfig: Dont repeat header when rendering resolv.conf
+      [Ryan Harper] (LP: #1701420)
+    - archlinux: Fix bug with empty dns, do not render 'lo' devices.
+      (LP: #1663045, #1706593)
+    - cloudinit.net: add initialize_network_device function and tests
+      [Chad Smith]
+    - makefile: fix ci-deps-ubuntu target [Chad Smith]
+
+ -- Ryan Harper <ryan.harper@xxxxxxxxxxxxx>  Mon, 21 Aug 2017 15:09:36 -0500
+
+cloud-init (0.7.9-231-g80bf98b9-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - tests: remove 'yakkety' from releases as it is EOL.
+    - systemd: make systemd-fsck run after cloud-init.service (LP: #1691489)
+    - tests: Add initial tests for EC2 and improve a docstring.
+    - locale: Do not re-run locale-gen if provided locale is system default.
+    - archlinux: fix set hostname usage of write_file.
+      [Joshua Powers] (LP: #1705306)
+    - sysconfig: support subnet type of 'manual'.
+    - Drop rand_str() usage in DNS redirection detection
+      [Bob Aman] (LP: #1088611)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 31 Jul 2017 09:47:34 -0400
+
+cloud-init (0.7.9-221-g7e41b2a7-0ubuntu3) artful; urgency=medium
+
+  * debian/control: replace Depends on ifupdown with 'nplan | ifupdown'.
+    (LP: #1705639)
+  * debian/control: drop versioned dependencies on old packages.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 21 Jul 2017 12:32:33 -0400
+
+cloud-init (0.7.9-221-g7e41b2a7-0ubuntu2) artful; urgency=medium
+
+  * debian/cloud-init.templates: enable Scaleway cloud.
+  * debian/cloud-init.templates: enable Aliyun cloud.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 21 Jul 2017 09:33:39 -0400
+
+cloud-init (0.7.9-221-g7e41b2a7-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - sysconfig: use MACADDR on bonds/bridges to configure mac_address
+      [Ryan Harper] (LP: #1701417)
+    - net: eni route rendering missed ipv6 default route config
+      [Ryan Harper] (LP: #1701097)
+    - sysconfig: enable mtu set per subnet, including ipv6 mtu
+      [Ryan Harper] (LP: #1702513)
+    - sysconfig: handle manual type subnets [Ryan Harper] (LP: #1687725)
+    - sysconfig: fix ipv6 gateway routes [Ryan Harper] (LP: #1694801)
+    - sysconfig: fix rendering of bond, bridge and vlan types.
+      [Ryan Harper] (LP: #1695092)
+    - Templatize systemd unit files for cross distro deltas. [Ryan Harper]
+    - sysconfig: ipv6 and default gateway fixes. [Ryan Harper] (LP: #1704872)
+    - net: fix renaming of nics to support mac addresses written in upper case.
+      (LP: #1705147)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 20 Jul 2017 21:37:12 -0400
+
+cloud-init (0.7.9-212-g865e941f-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - tests: fixes for issues uncovered when moving to python 3.6.
+    - sysconfig: include GATEWAY value if set in subnet 
+      [Ryan Harper] (LP: #1686856)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 19 Jul 2017 07:54:57 -0400
+
+cloud-init (0.7.9-210-ge80517ae-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - Scaleway: add datasource with user and vendor data for Scaleway.
+      [Julien Castets]
+    - Support comments in content read by load_shell_content.
+    - FreeBSD: cloudinit local fail to run during boot [Hongjiang Zhang]
+    - doc: fix disk setup example table_type options [Sandor Zeestraten]
+      (LP: #1703789)
+    - tools: Fix exception handling. [Joonas Kylmälä] (LP: #1701527)
+    - tests: fix usage of mock in GCE test.
+    - test_gce: Fix invalid mock of platform_reports_gce to return False
+      [Chad Smith]
+    - test: fix incorrect keyid for apt repository. [Joshua Powers]
+      (LP: #1702717)
+    - tests: Update version of pylxd [Joshua Powers]
+    - write_files: Remove log from helper function signatures.
+      [Andrew Jorgensen]
+    - doc: document the cmdline options to NoCloud [Brian Candler]
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 18 Jul 2017 14:03:33 -0400
+
+cloud-init (0.7.9-199-g4d9f24f5-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - read_dmi_data: always return None when inside a container. (LP: #1701325)
+    - requirements.txt: remove trailing white space.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 29 Jun 2017 18:01:21 -0400
+
+cloud-init (0.7.9-197-gebc9ecbc-0ubuntu1) artful; urgency=medium
+
+  * debian/control: add build dependency python3-jsonschema (LP: #1695318)
+  * New upstream snapshot.
+    - Azure: Add network-config, Refactor net layer to handle duplicate macs.
+      [Ryan Harper]
+    - Tests: Simplify the check on ssh-import-id [Joshua Powers]
+    - tests: update ntp tests after sntp added [Joshua Powers]
+    - FreeBSD: Make freebsd a variant, fix unittests and
+      tools/build-on-freebsd.
+    - FreeBSD: fix test failure
+    - FreeBSD: replace ifdown/ifup with "ifconfig down" and "ifconfig up".
+      [Hongjiang Zhang] (LP: #1697815)
+    - FreeBSD: fix cdrom mounting failure if /mnt/cdrom/secure did not exist.
+      [Hongjiang Zhang] (LP: #1696295)
+    - main: Don't use templater to format the welcome message
+      [Andrew Jorgensen]
+    - docs: Automatically generate module docs form schema if present.
+      [Chad Smith]
+    - debian: fix path comment in /etc/hosts template.
+      [Jens Sandmann] (LP: #1606406)
+    - suse: add hostname and fully qualified domain to template.
+      [Jens Sandmann]
+    - write_file(s): Print permissions as octal, not decimal [Andrew Jorgensen]
+    - ci deps: Add --test-distro to read-dependencies to install all deps
+      [Chad Smith]
+    - tools/run-centos: cleanups and move to using read-dependencies
+    - pkg build ci: Add make ci-deps-<distro> target to install pkgs
+      [Chad Smith]
+    - systemd: make cloud-final.service run before apt daily services.
+      (LP: #1693361)
+    - selinux: Allow restorecon to be non-fatal. [Ryan Harper] (LP: #1686751)
+    - net: Allow netinfo subprocesses to return 0 or 1.
+      [Ryan Harper] (LP: #1686751)
+    - net: Allow for NetworkManager configuration [Ryan McCabe] (LP: #1693251)
+    - Use distro release version to determine if we use systemd in redhat spec
+      [Ryan Harper]
+    - net: normalize data in network_state object
+    - Integration Testing: tox env, pyxld 2.2.3, and revamp framework
+      [Wesley Wiedenmeier]
+    - Chef: Update omnibus url to chef.io, minor doc changes. [JJ Asghar]
+    - tools: add centos scripts to build and test [Joshua Powers]
+    - Drop cheetah python module as it is not needed by trunk [Ryan Harper]
+    - rhel/centos spec cleanups.
+    - cloud.cfg: move to a template.  setup.py changes along the way.
+    - Makefile: add deb-src and srpm targets. use PYVER more places.
+    - makefile: fix python 2/3 detection in the Makefile [Chad Smith]
+    - snap: Removing snapcraft plug line [Joshua Powers] (LP: #1695333)
+    - RHEL/CentOS: Fix default routes for IPv4/IPv6 configuration.
+      [Andreas Karis] (LP: #1696176)
+    - test: Fix pyflakes complaint of unused import.
+      [Joshua Powers] (LP: #1695918)
+    - NoCloud: support seed of nocloud from smbios information
+      [Vladimir Pouzanov] (LP: #1691772)
+    - net: when selecting a network device, use natural sort order
+      [Marc-Aurèle Brothier]
+    - fix typos and remove whitespace in various docs [Stephan Telling]
+    - systemd: Fix typo in comment in cloud-init.target. [Chen-Han Hsiao]
+    - Tests: Skip jsonschema related unit tests when dependency is absent.
+      [Chad Smith] (LP: #1695318)
+    - azure: remove accidental duplicate line in merge.
+    - azure: identify platform by well known value in chassis asset tag.
+      [Chad Smith] (LP: #1693939)
+    - tools/net-convert.py: support old cloudinit versions by using kwargs.
+    - ntp: Add schema definition and passive schema validation.
+      [Chad Smith] (LP: #1692916)
+    - Fix eni rendering for bridge params that require repeated key for values.
+      [Ryan Harper]
+    - net: remove systemd link file writing from eni renderer [Ryan Harper]
+    - AliYun: Enable platform identification and enable by default.
+      [Junjie Wang] (LP: #1638931)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 27 Jun 2017 17:18:24 -0400
+
+cloud-init (0.7.9-153-g16a7302f-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - net: fix reading and rendering addresses in cidr format.
+      [Dimitri John Ledkov] (LP: #1689346, #1684349)
+    - disk_setup: udev settle before attempting partitioning or fs creation.
+      [Scott Moser] (LP: #1692093)
+    - GCE: Update the attribute used to find instance SSH keys.
+      [Daniel Watkins] (LP: #1693582)
+    - nplan: For bonds, allow dashed or underscore names of keys.
+      [Dimitri John Ledkov] (LP: #1690480)
+    - python2.6: fix unit tests usage of assertNone and format.
+    - test: update docstring on test_configured_list_with_none
+    - fix tools/ds-identify to not write None twice.
+    - tox/build: do not package depend on style requirements.
+    - cc_ntp: Restructure cc_ntp unit tests. [Chad Smith] (LP: #1692794)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 26 May 2017 15:11:48 -0400
+
+cloud-init (0.7.9-144-g2825a917-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - flake8: move the pinned version of flake8 up to 3.3.0
+    - tests: Apply workaround for snapd bug in test case. [Joshua Powers]
+    - RHEL/CentOS: Fix dual stack IPv4/IPv6 configuration. [Andreas Karis]
+      (LP: #1679817, #1685534, #1685532)
+    - disk_setup: fix several issues with gpt disk partitions. (LP: #1692087)
+    - function spelling & docstring update [Joshua Powers]
+    - Fixing wrong file name regression. [Joshua Powers]
+    - tox: move pylint target to 1.7.1
+    - Fix get_interfaces_by_mac for empty macs (LP: #1692028)
+    - DigitalOcean: remove routes except for the public interface.
+      [Ben Howard] (LP: #1681531.)
+    - netplan: pass macaddress, when specified, for vlans
+      [Dimitri John Ledkov] (LP: #1690388)
+    - doc: various improvements for the docs on cc_users_groups.
+      [Felix Dreissig]
+    - cc_ntp: write template before installing and add service restart
+      [Ryan Harper] (LP: #1645644)
+    - cloudstack: fix tests to avoid accessing /var/lib/NetworkManager
+      [Lars Kellogg-Stedman]
+    - tests: fix hardcoded path to mkfs.ext4 [Joshua Powers] (LP: #1691517)
+    - Actually skip warnings when .skip file is present. [Chris Brinker]
+      (LP: #1691551)
+    - netplan: fix netplan render_network_state signature.
+      [Dimitri John Ledkov] (LP: #1685944)
+    - Azure: fix reformatting of ephemeral disks on resize to large types.
+      (LP: #1686514)
+    - Revert "tools/net-convert: fix argument order for render_network_state"
+    - make deb: Add devscripts dependency for make deb. Cleanup packages/bddeb.
+      [Chad Smith] (LP: #1685935)
+    - tools/net-convert: fix argument order for render_network_state
+      [Ryan Harper] (LP: #1685944)
+    - openstack: fix log message copy/paste typo in _get_url_settings
+      [Lars Kellogg-Stedman]
+    - unittests: fix unittests run on centos [Joshua Powers]
+    - Improve detection of snappy to include os-release and kernel cmdline.
+      (LP: #1689944)
+    - Add address to config entry generated by _klibc_to_config_entry.
+      [Julien Castets] (LP: #1691135)
+    - sysconfig: Raise ValueError when multiple default gateways are present.
+      [Chad Smith] (LP: #1687485)
+    - FreeBSD: improvements and fixes for use on Azure
+      [Hongjiang Zhang] (LP: #1636345)
+    - Add unit tests for ds-identify, fix Ec2 bug found.
+    - fs_setup: if cmd is specified, use shell interpretation.
+      [Paul Meyer] (LP: #1687712)
+    - doc: document network configuration defaults policy and formats.
+      [Ryan Harper]
+    - Fix name of "uri" key in docs for "cc_apt_configure" module
+      [Felix Dreissig]
+    - tests: Enable artful [Joshua Powers]
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 23 May 2017 17:04:40 -0400
+
+cloud-init (0.7.9-113-g513e99e0-0ubuntu1) artful; urgency=medium
+
+  * New upstream snapshot.
+    - nova-lxd: read product_name from environment, not platform.
+      (LP: #1685810)
+    - Fix yum repo config where keys contain array values
+      [Dylan Perry] (LP: #1592150)
+    - template: Update debian backports template [Joshua Powers] (LP: #1627293)
+    - rsyslog: replace ~ with stop [Joshua Powers] (LP: #1367899)
+    - Doc: add additional RTD examples [Joshua Powers] (LP: #1459604)
+    - Fix growpart for some cases when booted with root=PARTUUID.
+      (LP: #1684869)
+    - pylint: update output style to parseable [Joshua Powers]
+    - pylint: fix all logging warnings [Joshua Powers]
+    - CloudStack: Add NetworkManager to list of supported DHCP lease dirs.
+      [Syed Mushtaq Ahmed]
+    - net: kernel lies about vlans not stealing mac addresses, when they do
+      [Dimitri John Ledkov] (LP: #1682871)
+    - ds-identify: Check correct path for "latest" config drive
+      [Daniel Watkins] (LP: #1673637)
+    - doc: Fix example for resolve.conf configuration.
+      [Jon Grimm] (LP: #1531582)
+    - Fix examples that reference upstream chef repository.
+      [Jon Grimm] (LP: #1678145)
+    - doc: correct grammar and improve clarity in merging documentation.
+      [David Tagatac]
+    - doc: Add missing doc link to snap-config module. [Ryan Harper]
+    - snap: allows for creating cloud-init snap [Joshua Powers]
+    - DigitalOcean: assign IPv4ll address to lowest indexed interface.
+      [Ben Howard]
+    - DigitalOcean: configure all NICs presented in meta-data. [Ben Howard]
+    - Remove (and/or fix) URL shortener references [Jon Grimm] (LP: #1669727)
+    - HACKING.rst: more info on filling out contributors agreement.
+      [Scott Moser]
+    - util: teach write_file about copy_mode option
+      [Lars Kellogg-Stedman] (LP: #1644064)
+    - DigitalOcean: bind resolvers to loopback interface. [Ben Howard]
+    - tests: fix AltCloud tests to not rely on blkid (LP: #1636531)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 25 Apr 2017 16:34:08 -0400
+
+cloud-init (0.7.9-90-g61eb03fe-0ubuntu2) UNRELEASED; urgency=medium
+
+  * debian/update-grub-legacy-ec2: fix early exit failure no /etc/fstab
+    file. (LP: #1682160)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 12 Apr 2017 11:16:33 -0400
+
+cloud-init (0.7.9-90-g61eb03fe-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - OpenStack: add 'dvs' to the list of physical link types. 
+      (LP: #1674946)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 03 Apr 2017 11:10:38 -0400
+
+cloud-init (0.7.9-89-gbf7723e8-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - Fix bug that resulted in an attempt to rename bonds or vlans. 
+      (LP: #1669860)
+    - tests: update OpenNebula and Digital Ocean to not rely on host
+      interfaces.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 31 Mar 2017 17:02:28 -0400
+
+cloud-init (0.7.9-87-gd23543eb-0ubuntu1) zesty; urgency=medium
+
+  * debian/cloud-init.templates: add Bigstep to list of sources. (LP: #1676460)
+  * New upstream snapshot.
+    - net: in netplan renderer delete known image-builtin content.
+      (LP: #1675576)
+    - doc: correct grammar in capabilities.rst [David Tagatac]
+    - ds-identify: fix detecting of maas datasource. (LP: #1677710)
+    - netplan: remove debugging prints, add debug logging [Ryan Harper]
+    - ds-identify: do not write None twice to datasource_list.
+    - support resizing partition and rootfs on system booted without initramfs.
+      (LP: #1677376) [Steve Langasek]
+    - apt_configure: run only when needed. (LP: #1675185)
+    - OpenStack: identify OpenStack by product 'OpenStack Compute'.
+      (LP: #1675349)
+    - GCE: Search GCE in ds-identify, consider serial number in check.
+      (LP: #1674861)
+    - Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 30 Mar 2017 16:46:43 -0400
+
+cloud-init (0.7.9-77-g4a2b2f87-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - Fix filesystem creation when using "partition: auto" [Jonathan Ballet]
+      (LP: #1634678)
+    - ConfigDrive: support reading config drive data from /config-drive for
+      nova-lxd.  (LP: #1673411)
+    - ds-identify: fix detection of Bigstep datasource. (LP: #1674766)
+    - test: add running of pylint [Joshua Powers]
+    - ds-identify: fix bug where filename expansion was left on.
+    - advertise network config v2 support (NETWORK_CONFIG_V2) in features.
+    - Bigstep: fix bug when executing in python3.
+    - Fix unit test when running in a system deployed with cloud-init.
+    - Bounce network interface for Azure when using the built-in path.
+      [Brent Baude] (LP: #1674685)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 24 Mar 2017 16:50:56 -0400
+
+cloud-init (0.7.9-68-gef18b8ac-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - cloudinit.net: add network config v2 parsing and rendering [Ryan Harper]
+    - net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 20 Mar 2017 16:21:55 -0400
+
+cloud-init (0.7.9-66-g5beecdf8-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - net: add renderers for automatically selecting the renderer. 
+    - doc: fix config drive doc with regard to unpartitioned disks.
+      (LP: #1673818)
+    - test: Adding integratiron test for password as list [Joshua Powers]
+    - render_network_state: switch arguments around, do not require target 
+    - support 'loopback' as a device type. 
+    - Integration Testing: improve testcase subclassing [Wesley Wiedenmeier]
+    - gitignore: adding doc/rtd_html [Joshua Powers]
+    - doc: add instructions for running integration tests via tox.
+      [Joshua Powers]
+    - test: avoid differences in 'date' output due to daylight savings. 
+    - Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837)
+    - Add feature flags to cloudinit.version. [Wesley Wiedenmeier]
+    - tox: add a citest environment 
+    - Support chpasswd/list being a list in addition to a string.
+      [Sergio Lystopad] (LP: #1665694)
+    - doc: Fix configuration example for cc_set_passwords module.
+      [Sergio Lystopad] (LP: #1665773)
+    - net: support both ipv4 and ipv6 gateways in sysconfig.
+      [Lars Kellogg-Stedman] (LP: #1669504)
+    - net: do not raise exception for > 3 nameservers
+      [Lars Kellogg-Stedman] (LP: #1670052)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 17 Mar 2017 21:41:40 -0400
+
+cloud-init (0.7.9-48-g1c795b9-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - ds-identify: report cleanups for config and exit value. (LP: #1669949)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 06 Mar 2017 14:56:28 -0500
+
+cloud-init (0.7.9-47-gc81ea53-0ubuntu1) zesty; urgency=medium
+
+  * debian/rules: install Z99-cloudinit-warnings.sh to /etc/profile.d
+  * New upstream snapshot.
+    - Support warning if the used datasource is not in ds-identify's list
+      (LP: #1669675)
+    - Z99-cloudinit-warnings: Add profile.d script for showing warnings on
+      login.
+    - Z99-cloud-locale-test.sh: convert tabs to spaces, remove unneccesary
+      execute bit in permissions.
+    - tools/ds-identify: look at cloud.cfg when looking for ec2 strict_id.
+    - tools/ds-identify: fix bug that would mistakingly enable vmware guest
+      customization.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 03 Mar 2017 01:56:19 -0500
+
+cloud-init (0.7.9-38-g83606ae-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - tools/ds-identify: ovf identify vmware guest customization.
+    - Identify Brightbox as an Ec2 datasource user. (LP: #1661693)
+    - DatasourceEc2: add warning message when not on AWS.
+    - ds-identify: add reading of datasource/Ec2/strict_id
+    - tools/ds-identify: add support for 'found' or 'maybe' contributing
+      config.
+    - tools/ds-identify: read the seed directory on Ec2
+    - tools/ds-identify: use quotes in local declarations.
+    - tools/ds-identify: fix documentation of policy setting in a comment.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 24 Feb 2017 22:53:53 -0500
+
+cloud-init (0.7.9-30-gf4e8eb0-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - ds-identify: only run once per boot unless --force is given.
+    - net: correct errors in cloudinit/net/sysconfig.py
+      [Lars Kellogg-Stedman] (LP: #1665441)
+    - ec2_utils: fix MetadataLeafDecoder that returned bytes on empty.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 17 Feb 2017 17:05:47 -0500
+
+cloud-init (0.7.9-26-g1cd8cfa-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - apply the runtime configuration written by ds-identify.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 14 Feb 2017 14:45:25 -0500
+
+cloud-init (0.7.9-25-g65529b6-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - ds-identify: fix checking for filesystem label (LP: #1663735)
+    - ds-identify: read ds=nocloud properly (LP: #1663723)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 10 Feb 2017 15:25:17 -0500
+
+cloud-init (0.7.9-23-g0df21b6-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - support nova-lxd by reading platform from environment of pid 1.
+      (LP: #1661797)
+    - ds-identify: change aarch64 to use the default for non-dmi systems.
+      that default is to enable cloud-init even if no datasources are
+      explicitly found.
+    - Remove style checking during build and add latest style checks to tox
+      [Joshua Powers] (LP: #1652329)
+    - code-style: make master pass pycodestyle (2.3.1) cleanly.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 09 Feb 2017 13:18:47 -0500
+
+cloud-init (0.7.9-19-ge987092-0ubuntu2) zesty; urgency=medium
+
+  * debian/update-grub-legacy-ec2: fix shell syntax error. (LP: #1662221)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 06 Feb 2017 11:14:11 -0500
+
+cloud-init (0.7.9-19-ge987092-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - manual_cache_clean: When manually cleaning touch a file in instance dir.
+    - Add tools/ds-identify to identify datasources available.
+    - Fix small typo and change iso-filename for consistency [Robin Naundorf]
+    - Fix eni rendering of multiple IPs per interface
+      [Ryan Harper] (LP: #1657940)
+    - tools/mock-meta: support python2 or python3 and ipv6 in both.
+    - tests: remove executable bit on test_net, so it runs, and fix it.
+    - tests: No longer monkey patch httpretty for python 3.4.2
+    - Add 3 ecdsa-sha2-nistp* ssh key types now that they are standardized
+      [Lars Kellogg-Stedman] (LP: #1658174)
+    - reset httppretty for each test [Lars Kellogg-Stedman] (LP: #1658200)
+    - build: fix running Make on a branch with tags other than master
+    - EC2: Do not cache security credentials on disk
+      [Andrew Jorgensen] (LP: #1638312)
+    - doc: Fix typos and clarify some aspects of the part-handler
+      [Erik M. Bray]
+    - doc: add some documentation on OpenStack datasource.
+    - OpenStack: Use timeout and retries from config in get_data.
+      [Lars Kellogg-Stedman] (LP: #1657130)
+    - Fixed Misc issues related to VMware customization. [Sankar Tanguturi]
+    - Fix minor docs typo: perserve > preserve [Jeremy Bicha]
+    - Use dnf instead of yum when available [Lars Kellogg-Stedman]
+      (LP: #1647118)
+    - validate-yaml: use python rather than explicitly python3
+    - Get early logging logged, including failures of cmdline url.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 03 Feb 2017 21:54:39 -0500
+
+cloud-init (0.7.9-0ubuntu2) zesty; urgency=medium
+
+  * debian/copyright: update License field to include Apache.
+  * debian/update-grub-legacy-ec2: fix to include kernels whose config
+    has CONFIG_XEN=y (LP: #1379080).
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 20 Jan 2017 10:01:42 -0500
+
+cloud-init (0.7.9-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - release 0.7.9
+    - doc: adjust headers in tests documentation for consistency.
+    - integration test: initial commit of integration test framework
+      [Wesley Wiedenmeier]
+    - LICENSE: Allow dual licensing GPL-3 or Apache 2.0 [Jon Grimm]
+    - Fix config order of precedence, putting kernel command line over system.
+      [Wesley Wiedenmeier] (LP: #1582323)
+    - Update the list of valid ssh keys. [Michael Felt]
+    - network: add ENI unit test for statically rendered routes.
+    - set_hostname: avoid erroneously appending domain to fqdn
+      [Lars Kellogg-Stedman] (LP: #1647910)
+    - doc: change 'nobootwait' to 'nofail' in docs [Anhad Jai Singh]
+    - Replace an expired bit.ly link in code comment.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 23 Dec 2016 12:54:50 -0500
+
+cloud-init (0.7.8-68-gca3ae67-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - user-groups: fix bug when groups was provided as string and had spaces
+      (LP: #1354694)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 19 Dec 2016 12:35:13 -0500
+
+cloud-init (0.7.8-67-gc9c9197-0ubuntu1) zesty; urgency=medium
+
+  * debian/cherry-pick: add utility for cherry picking commits from upstream
+    into patches in debian/patches.
+  * New upstream snapshot.
+    - mounts: use mount -a again to accomplish mounts (LP: #1647708)
+    - CloudSigma: Fix bug where datasource was not loaded in local search. (LP: #1648380)
+    - when adding a user, strip whitespace from group list (LP: #1354694)
+    - fix decoding of utf-8 chars in yaml test
+    - Replace usage of sys_netdev_info with read_sys_net (LP: #1625766)
+    - fix problems found in python2.6 test.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Sun, 11 Dec 2016 21:22:57 -0500
+
+cloud-init (0.7.8-61-g2d2ec70-0ubuntu1) zesty; urgency=medium
+
+  * debian/grub-legacy-ec2.install: install post(inst|rm) files correctly.
+    [Simon Deziel] (LP: #1581416)
+  * New upstream snapshot.
+    - OpenStack: extend physical types to include hyperv, hw_veb, vhost_user. [Scott Moser] (LP: #1642679)
+    - tests: fix assumptions that expected no eth0 in system. [Scott Moser] (LP: #1644043)
+    - net/cmdline: Consider ip= or ip6= on command line not only ip= [Scott Moser] (LP: #1639930)
+    - Just use file logging by default [Joshua Harlow] (LP: #1643990)
+    - Improve formatting for ProcessExecutionError [Wesley Wiedenmeier]
+    - flake8: fix trailing white space [Scott Moser]
+    - Doc: various documentation fixes [Sean Bright]
+    - cloudinit/config/cc_rh_subscription.py: Remove repos before adding [Brent Baude]
+    - packages/redhat: fix rpm spec file. [Scott Moser]
+    - main: set TZ in environment if not already set. [Ryan Harper]
+    - Azure: No longer rely on walinux agent. [Scott Moser] (LP: #1538522)
+    - disk_setup: Use sectors as unit when formatting MBR disks with sfdisk. [Daniel Watkins] (LP: #1460715)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 28 Nov 2016 16:08:09 -0500
+
+cloud-init (0.7.8-49-g9e904bb-0ubuntu1) zesty; urgency=medium
+
+  * debian/cloud-init.postinst: update /etc/fstab on Azure to fix
+    future resize operations. (LP: #1611074)
+  * New upstream snapshot.
+    - Add activate_datasource, for datasource specific code paths.
+      Use that on Azure to handle re-formatting of ephemeral disk.
+      (LP: #1611074)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 18 Nov 2016 16:37:34 -0500
+
+cloud-init (0.7.8-48-g9d826b8-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - systemd: cloud-init-local use RequiresMountsFor=/var/lib/cloud
+      (LP: #1642062)
+    - systemd: cloud-init remove After=systemd-networkd-wait-online
+    - systemd: cloud-init-local change Before basic to sysinit
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 15 Nov 2016 17:21:34 -0500
+
+cloud-init (0.7.8-45-g584b843-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - pep8: fix style errors reported by pycodestyle 2.1.0 [Scott Moser]
+    - systemd: drop both Wants and After local-fs.target [Scott Moser]
+    - systemd: networking service adjustments. (LP: #1636912)
+    - systemd: replace Before=basic.target, dbus.target with sysinit.target
+      (LP: #1629797)
+    - doc: Add documentation on stages of boot.
+    - doc: make the RST files consistently formated and other improvements.
+    - Ec2: fix syntax and tox in previous commit.
+    - Ec2: protect against non-dictionary in block-device-mapping.
+    - doc: fixed example to not overwrite /etc/hosts [Chris Glass]
+    - Doc: fix spelling / typos in ca_certs and scripts_vendor.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 10 Nov 2016 21:04:09 -0500
+
+cloud-init (0.7.8-35-gc24187e-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - pyflakes: fix issue with pyflakes 1.3 found in ubuntu zesty-proposed.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 07 Nov 2016 13:31:30 -0500
+
+cloud-init (0.7.8-34-ga1cdebd-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - net/cmdline: Further adjustments to ipv6 support [LaMont Jones]
+     (LP: #1621615)
+    - Add coverage dependency to bddeb to fix package build.
+    - doc: improve HACKING.rst file
+    - dmidecode: Allow dmidecode to be used on aarch64 [Robert Schweikert]
+    - AliYun: Add new datasource for Ali-Cloud ECS [kaihuan.pkh]
+    - Add coverage collection to tox unit tests. [Joshua Powers]
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 04 Nov 2016 11:03:46 -0400
+
+cloud-init (0.7.8-28-gf7a5756-0ubuntu1) zesty; urgency=medium
+
+  * New upstream snapshot.
+    - cc_users_groups: fix remaing call to ds.normalize_user_groups
+      [Ryan Harper]
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 26 Oct 2016 09:06:03 -0400
+
+cloud-init (0.7.8-27-g29348af-0ubuntu1) zesty; urgency=medium
+
+  * debian/cloud-init.templates: enable DigitalOcean by default [Ben Howard]
+  * New upstream snapshot.
+    - disk-config: udev settle after partitioning in gpt format. (LP: #1626243)
+    - unittests: do not read system /etc/cloud/cloud.cfg.d (LP: #1635350)
+    - Add documentation for logging features. [Wesley Wiedenmeier]
+    - Add support for snap create-user on Ubuntu Core images. [Ryan Harper]
+      (LP: #1619393)
+    - Fix sshd restarts for rhel distros. [Jim Gorz] (LP: #1470433)
+    - OpenNebula: replace 'ip' parsing with cloudinit.net usage.
+    - Fix python2.6 things found running in centos 6.
+    - Move user/group functions to new ug_util file [Joshua Harlow]
+    - DigitalOcean: enable usage of data source by default.
+    - update Gentoo initscripts to run in the correct order [Matthew Thode]
+    - MAAS: improve the main of datasource to look at kernel cmdline config.
+    - tests: silence the Cheetah UserWarning about NameMapper C version.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 25 Oct 2016 17:06:59 -0400
+
+cloud-init (0.7.8-15-g6e45ffb-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - systemd: Run cloud-init.service Before dbus.socket not dbus.target
+      [Daniel Watkins] (LP: #1629797).
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 07 Oct 2016 12:41:38 -0400
+
+cloud-init (0.7.8-14-g94fd35e-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - systemd: run cloud-init.service Before dbus.service (LP: #1629797)
+    - unittests: fix use of mock 2.0 'assert_called' when running make check
+      [Ryan Harper]
+    - Improve module documentation and doc cleanup.  [Wesley Wiedenmeier]
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 04 Oct 2016 16:46:05 -0400
+
+cloud-init (0.7.8-11-g02f6c4b-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - lxd: Update network config for LXD 2.3 [Stéphane Graber]
+    - DigitalOcean: use meta-data for network configruation [Ben Howard]
+    - ntp: move to run after apt configuration (LP: #1628337)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 29 Sep 2016 14:30:15 -0400
+
+cloud-init (0.7.8-8-g0439d8a-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - Decode unicode types in decode_binary [Robert Schweikert]
+    - systemd: Ensure that cloud-init-local happens before NetworkManager
+    - Allow ephemeral drive to be unpartitioned [Paul Meyer]
+    - subp: add 'update_env' argument
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 23 Sep 2016 16:51:27 -0400
+
+cloud-init (0.7.8-4-g970dbd1-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - net: support reading ipv6 dhcp config from initramfs [LaMont Jones]
+      (LP: #1621615)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 21 Sep 2016 11:56:23 -0400
+
+cloud-init (0.7.8-3-g80f5ec4-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - Adjust mounts and disk configuration for systemd. (LP: #1611074)
+    - dmidecode: run dmidecode only on i?86 or x86_64 arch. [Robert Schweikert]
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 20 Sep 2016 13:59:20 -0400
+
+cloud-init (0.7.8-1-g3705bb5-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream release 0.7.8.
+  * New upstream snapshot.
+    - systemd: put cloud-init.target After multi-user.target (LP: #1623868)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 15 Sep 2016 09:47:11 -0400
+
+cloud-init (0.7.7-31-g65ace7b-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - Allow link type of null in network_data.json [Jon Grimm] (LP: #1621968)
+    - DataSourceOVF: fix user-data as base64 with python3 (LP: #1619394)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 12 Sep 2016 14:56:42 -0400
+
+cloud-init (0.7.7-28-g34a26f7-0ubuntu2) yakkety; urgency=medium
+
+  * debian/control: fix missing dependency on python3-serial,
+    and make SmartOS datasource work.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 09 Sep 2016 21:22:13 -0400
+
+cloud-init (0.7.7-28-g34a26f7-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - systemd: Better support package and upgrade.
+      (LP: #1576692, #1621336)
+    - tests: cleanup tempdirs in apt_source tests
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 09 Sep 2016 16:01:13 -0400
+
+cloud-init (0.7.7-26-g058dd75-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - apt config conversion: treat empty string as not provided. (LP: #1621180)
+    - Fix typo in default keys for phone_home [Roland Sommer] (LP: #1607810)
+    - salt minion: update default pki directory for newer salt minion.
+      (LP: #1609899)
+    - bddeb: add --release flag to specify the release in changelog.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 08 Sep 2016 09:36:52 -0400
+
+cloud-init (0.7.7-22-g763f403-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - apt-config: allow both old and new format to be present.
+      [Christian Ehrhardt] (LP: #1616831)
+    - python2.6: fix dict comprehension usage in _lsb_release. [Joshua Harlow]
+    - Add a module that can configure spacewalk. [Joshua Harlow]
+    - add install option for openrc [Matthew Thode]
+    - Generate a dummy bond name for OpenStack (LP: #1605749)
+  * debian/control, debian/README.source: update to reference git.
+  * debian/new-upstream-snapshot: small fixes.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 26 Aug 2016 15:22:13 -0400
+
+cloud-init (0.7.7-17-g40a2f62-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - network: fix get_interface_mac for bond slave, read_sys_net for ENOTDIR
+    - azure dhclient-hook cleanups
+    - Minor cleanups to atomic_helper and add unit tests.
+    - Fix Gentoo net config generation [Matthew Thode]
+  * debian/control: drop very old meta-package ec2-init
+  * debian/rules, debian/cloud-init.install: remove install file
+    and use --destdir=debian/cloud-init. (LP: #1615745)
+  * debian/dirs: remove obsolete / unused file.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 22 Aug 2016 17:02:56 -0400
+
+cloud-init (0.7.7-13-g41271bd-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - distros: fix get_primary_arch method use of os.uname [Andrew Jorgensen]
+    - Apt: add new apt configuration format [Christian Ehrhardt]
+    - Get Azure endpoint server from DHCP client [Brent Baude]
+  * debian/new-upstream-snapshot: update to use git and packaging branches.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 18 Aug 2016 17:11:51 -0400
+
+cloud-init (0.7.7-10-gbc2c326-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot:
+    - DigitalOcean: use the v1.json endpoint
+    - MAAS: add vendor-data support (LP: #1612313)
+    - Upgrade the minimum configobj package to one new enough to work
+    - ConfigDrive: recognize 'tap' as a link type.  (LP: #1610784)
+    - NoCloud: fix bug providing network-interfaces via meta-data.
+      (LP: #1577982)
+    - Add distro tags on config modules that should have it
+    - add ntp config module
+    - SmartOS: more improvements for network configuration
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 12 Aug 2016 17:18:01 -0400
+
+cloud-init (0.7.7-0ubuntu1) yakkety; urgency=medium
+
+  * New Upstream release.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 10 Aug 2016 01:48:32 -0400
+
+cloud-init (0.7.7~git1029-gb56d7a1-0ubuntu1) yakkety; urgency=medium
+
+  * New Upstream snapshot.
+    - mcollective: add tests, cleanups and bug fix when no config in /etc.
+    - Move upstream revision control to git.  [Lars Kellogg-Stedman]
+    - Adjust unit tests to address newer requests have strong type validation.
+  * debian/control: update Standards-Version to 3.9.8
+  * debian/rules: fix PYVER in environment to sync with upstream changes.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 09 Aug 2016 01:16:28 -0400
+
+cloud-init (0.7.7~bzr1256-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - distros/debian.py: fix eni renderer to not render .link files
+    - fixes for execution in python2.6.
+    - ConfigDrive: fix writing of 'injected' files and legacy networking
+      (LP: #1602373)
+    - improvements to /etc/network/interfaces rendering including rendering
+      of 'lo' devices and sorting attributes within a interface section.
+    - fix mcollective module that was completely broken if using python3
+      (LP: #1597699)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 14 Jul 2016 14:54:05 -0400
+
+cloud-init (0.7.7~bzr1246-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - fix restoring from a datasource that did not have dsmode (LP: #1596690)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 27 Jun 2016 16:28:39 -0400
+
+cloud-init (0.7.7~bzr1245-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - user_data: fix error when user-data is not utf-8 decodable (LP: #1532072)
+    - write_files: if no permissions are provided, use the default without
+      logging a warning.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 22 Jun 2016 15:11:33 -0400
+
+cloud-init (0.7.7~bzr1243-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - do not render systemd.link files (LP: #1594546)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 20 Jun 2016 17:14:34 -0400
+
+cloud-init (0.7.7~bzr1242-0ubuntu1) yakkety; urgency=medium
+
+  * d/control: Build-Depends on python3-unittest2
+  * New upstream snapshot.
+    - DataSourceNoCloud: fix stack trace on reboot, default to dsmode=net 
+      (LP: #1592505)
+    - support network rendering to sysconfig (for centos and RHEL)
+    - fix errors reported by pylint
+    - move 'main' into cloudinit.cmd for easier testing. use
+      setuptools entry_points for creating executable.
+    - Remove trailing dot from GCE metadata URL (LP: #1581200)
+    - Change missing Cheetah log warning to debug [Andrew Jorgensen]
+    - make networking config provided in system config override datasource.
+      (LP: #1590104)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 16 Jun 2016 00:07:12 -0400
+
+cloud-init (0.7.7~bzr1227-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - fix one more unit test to run inside buildd.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Sat, 04 Jun 2016 20:55:07 -0400
+
+cloud-init (0.7.7~bzr1226-0ubuntu1) yakkety; urgency=medium
+
+  * New upstream snapshot.
+    - fix unit tests to run inside buildd.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 03 Jun 2016 23:01:16 -0400
+
+cloud-init (0.7.7~bzr1225-0ubuntu1) yakkety; urgency=medium
+
+  * debian/cloud-init.templates fix capitalisation in template so
+    dpkg-reconfigure works to select OpenStack. (LP: #1575727)
+  * New upstream snapshot.
+    - improve network configuration.  Support DreamCompute, RDO openstack
+      and SmartOS networking
+    - remove blocking udev rules (LP: #1577844, LP: #1571761)
+    - support for renaming devices in a container (LP: #1579130).
+    - Apt sources configuration improvements (LP: #1574113)
+    - kernel command line: override all local settings (LP: #1582323)
+    - fix timestamp in reporting events.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 03 Jun 2016 16:38:55 -0400
+
+cloud-init (0.7.7~bzr1215-0ubuntu1) yakkety; urgency=medium
+
+  * debian/new-upstream-snapshot: minor change supporting revision
+    passed in as an argument.
+  * New upstream snapshot.
+    - Paths: fix instance path if datasource's id has a '/'. (LP: #1575938)
+    - Config Drive: fix check_instance_id signature.  (LP: #1575055)
+    - cloudstack: Only use DHCPv4 lease files as a datasource (LP: #1576273)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 29 Apr 2016 12:37:48 -0400
+
+cloud-init (0.7.7~bzr1212-0ubuntu1) xenial; urgency=medium
+
+  * New upstream snapshot.
+    - fix iscsi root by not writing interface as 'auto' when networking
+      information comes from kernel command line (LP: #1568637)
+    - apply networking less often, when possible only on first
+      instance boot (LP: #1571004).
+    - no longer delete /etc/network/interfaces.d/eth0.cfg on
+      ubuntu (LP: #1563487)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 15 Apr 2016 16:25:43 -0400
+
+cloud-init (0.7.7~bzr1209-0ubuntu1) xenial; urgency=medium
+
+  * New upstream snapshot.
+    - fallback net config: do not consider devices starting with 
+      'veth' (LP: #1569064)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 14 Apr 2016 16:24:38 -0400
+
+cloud-init (0.7.7~bzr1208-0ubuntu1) xenial; urgency=medium
+
+  * New upstream snapshot.
+    - phone_home: allow usage of fqdn (LP: #1566824) [Ollie Armstrong]
+    - chef: straighten out validation_cert and validation_key (LP: #1568940)
+    - skip bridges when generating fallback networking (LP: #1569974)
+    - rh_subscription: only check subscription if configured (LP: #1536706)
+    - SmartOS, CloudSigma: fix error when dmi data is not availble
+      (LP: #1569469)
+    - DataSourceNoCloud: fix check_instance_id when upgraded (LP: #1568150)
+    - lxd: adds basic support for dpkg based lxd-bridge 
+      configuration. (LP: #1569018)
+    - centos: Ensure that a resolve conf object is written as a string.
+      (LP: #1479988)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 13 Apr 2016 13:19:03 -0400
+
+cloud-init (0.7.7~bzr1200-0ubuntu1) xenial; urgency=medium
+
+  * New upstream snapshot.
+    - fix adding of users when no group is specified (LP: #1562918)
+    - fix write_files with compressed content (LP: #1565638)
+    - systemd: do not specify After of obsolete syslog.target (LP: #1536964)
+    - chef: fix chef installation from gems (LP: #1553345)
+    - disk_setup: correctly send force to mkfs on block devices (LP: #1548772)
+    - locale: list unsupported environment settings in warning (LP: #1558069)
+    - fix NoCloud and other datasources if no datasource config (LP: #1514407)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 06 Apr 2016 13:07:27 -0400
+
+cloud-init (0.7.7~bzr1192-0ubuntu2) xenial; urgency=medium
+
+  [Logan Rosen]
+  * debian/cloud-init.postinst: fix shell syntax in upgrade (LP: #1564187)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 31 Mar 2016 10:09:09 -0400
+
+cloud-init (0.7.7~bzr1192-0ubuntu1) xenial; urgency=medium
+
+  * New upstream snapshot.
+    - Misc fixes for VMware Support.
+    - network config improvements:
+      - do not raise exception on non-debian if network config is found.
+      - apply network config in 'cloud-init --local' even if there is
+        no datasource found.
+      - do not write 70-persistent-net.rules only systemd .link files.
+    - improve how cloud-init-wait waits: remove the check and sleep
+      loop and replace it with 'udevadm settle'.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 29 Mar 2016 16:34:25 -0400
+
+cloud-init (0.7.7~bzr1189-0ubuntu1) xenial; urgency=medium
+
+  * d/control: adjust build dependency as python3-pyflakes in xenial
+    now provides python3 modules for pyflakes.
+  * d/cloud-init.install, d/control, d/dirs, d/grub-legacy-ec2.install:
+    run wrap-and-sort
+  * d/cloud-init.install: add lib/udev/ files.
+  * d/cloud-init.postinst: touch /var/lib/cloud/data/upgraded-network
+    if upgrading from version that did not have network support.
+  * New upstream snapshot.
+    * initial support for support network configuration in cloud-init --local
+    * do not rely on network metadata service on every boot for 
+      ConfigDrive Openstack Azure (LP: #1553815)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 24 Mar 2016 17:36:40 -0400
+
+cloud-init (0.7.7~bzr1182-0ubuntu1) xenial; urgency=medium
+
+  * New upstream snapshot.
+    * systemd changes enforcing intended ordering (cloud-init-local.service
+      before networking and cloud-init.service before it comes up).
+    * when reading dmidecode data, return found but unset value as "" rather
+      than failing to decode that value.
+    * add default user to 'lxd' group and create groups when necessary
+      (LP: #1539317)
+    * No longer run pollinate in seed_random (LP: #1554152)
+    * Enable BigStep data source.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 14 Mar 2016 09:58:56 -0400
+
+cloud-init (0.7.7~bzr1176-0ubuntu1) xenial; urgency=medium
+
+  * d/README.source, d/new-upstream-snapshot: simplify the README.source
+    with a script.
+  * d/rules: support DEB_BUILD_OPTIONS=nocheck and remove unused code.
+  * d/rules: make tests with python3
+  * d/control: add pep8 as a build depends
+  * d/cloud-init.preinst, d/cloud-init.postinst adjust upgrade path
+    to adjust systemd jobs that put cloud-init unit jobs directly
+    in multi-user.target.
+  * New upstream snapshot.
+    * Add Image Customization Parser for VMware vSphere Hypervisor Support.
+      Disabled by default. [Sankar Tanguturi]
+    * lxd: add initial support for setting up lxd using 'lxd init'
+    * Handle escaped quotes in WALinuxAgentShim.find_endpoint (LP: #1488891)
+    * timezone: use a symlink when updating /etc/localtime (LP: #1543025)
+    * enable more code testing in 'make check'
+    * Added Bigstep datasource [Daniel Watkins]
+    * Enable password changing via a hashed string [Alex Sirbu]
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 04 Mar 2016 15:44:02 -0500
+
+cloud-init (0.7.7~bzr1160-0ubuntu1) xenial; urgency=medium
+
+  * New upstream snapshot.
+    * SmartOS: Add support for Joyent LX-Brand Zones (LP: #1540965)
+    * systemd/power_state: fix power_state when cloud-final exited failure
+      (LP: #1449318)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 04 Feb 2016 17:22:36 -0500
+
+cloud-init (0.7.7~bzr1156-0ubuntu2) xenial; urgency=medium
+
+  * debian/cloud-init.postinst, systemd_detect_virt.patch: Call
+    systemd-detect-virt instead of the Ubuntu specific running-in-container
+    wrapper. (LP: #1539016)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 28 Jan 2016 14:12:51 +0100
+
+cloud-init (0.7.7~bzr1156-0ubuntu1) xenial; urgency=medium
+
+  * New upstream snapshot.
+  * d/cloud-init.preinst: migrate Azure instance ID from old ID to stable
+    ID (LP: #1506187).
+
+ -- Ben Howard <ben.howard@xxxxxxxxxx>  Tue, 17 Nov 2015 11:59:49 -0700
+
+cloud-init (0.7.7~bzr1155-0ubuntu1) xenial; urgency=medium
+
+  * New upstream snapshot.
+    * cc_mounts: use 'nofail' rather than 'nobootwait' if system uses systemd.
+      (LP: #1514485).
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 10 Nov 2015 12:35:31 -0500
+
+cloud-init (0.7.7~bzr1154-0ubuntu1) xenial; urgency=medium
+
+  * New upstream snapshot.
+    * create the same /etc/apt/sources.list that is present in default server
+      ISO installs.  This change adds restricted, multiverse, and -backports
+      (LP: #1177432).
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 05 Nov 2015 12:10:00 -0500
+
+cloud-init (0.7.7~bzr1149-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    azure: support extracting SSH key values from ovf-env.xml (LP: #1506244)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 14 Oct 2015 20:38:45 -0400
+
+cloud-init (0.7.7~bzr1148-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * support configuring and installing the Ubuntu fan driver (LP: #1504604)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 09 Oct 2015 13:00:12 -0400
+
+cloud-init (0.7.7~bzr1147-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * MAAS: fix oauth when system clock is bad (LP: #1499869)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 29 Sep 2015 20:16:57 -0400
+
+cloud-init (0.7.7~bzr1146-0ubuntu2) wily; urgency=medium
+
+  * replace usage of python with python3 in postinst (LP: #1498493)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 22 Sep 2015 09:49:01 -0400
+
+cloud-init (0.7.7~bzr1146-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * make the webhook reporter post json data rather than
+      urlencoded data (LP: #1496960)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 17 Sep 2015 15:59:35 -0400
+
+cloud-init (0.7.7~bzr1145-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * fix default builtin config of snappy to set ssh_enabled=auto.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 15 Sep 2015 15:33:19 -0400
+
+cloud-init (0.7.7~bzr1144-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    [ Ben Howard ]
+    * snappy: enable ssh on snappy if ssh keys are provided or
+      password authentication is requested (LP: #1494816)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 11 Sep 2015 17:00:16 -0400
+
+cloud-init (0.7.7~bzr1143-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * NoCloud: fix consumption of vendor-data (LP: #1493453)
+    * power_state: support power change only on 'condition'
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 10 Sep 2015 16:20:44 -0400
+
+cloud-init (0.7.7~bzr1141-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * fix bug in cloud-init main preventing any usage.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 03 Sep 2015 11:36:37 -0400
+
+cloud-init (0.7.7~bzr1140-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * Handle symlink mount points in mount_cb (LP: #1490796).
+    * sync curtin reporting changes back to cloud-init.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 02 Sep 2015 16:50:54 -0400
+
+cloud-init (0.7.7~bzr1138-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * MAAS: fixes to data source and OauthUrlHelper (LP: #1488507)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 25 Aug 2015 15:28:06 -0400
+
+cloud-init (0.7.7~bzr1137-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * swap: use fallocate to create swapfile for speedup. (LP: #1482994)
+    * reporting: print handler fix.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 12 Aug 2015 12:54:51 -0400
+
+cloud-init (0.7.7~bzr1135-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * some stack traces fixed.
+    * improved rsyslog/syslog config format
+    * add reporting module for webhook or log reporting of events.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 07 Aug 2015 17:16:51 -0400
+
+cloud-init (0.7.7~bzr1127-0ubuntu1) wily; urgency=medium
+
+  [ Scott Moser ]
+  * d/README.source, debian/cherry-pick-rev: improve packaging tool
+
+  [ Daniel Watkins ]
+  * d/cloud-init.templates: Include SmartOS data source in the default list
+    and choices. (LP: #1398997)
+
+  [ Scott Moser ]
+  * New upstream snapshot.
+    * check for systemd using sd_booted symantics (LP: #1461201)
+    * fix importing of gpg keys in python3 (LP: #1463373)
+    * fix specification of devices to growpart (LP: #1465436)
+    * reliably detect and use Azure disks using udev rules (LP: #1411582)
+    * support selection of Ubuntu mirrors on GCE (LP: #1470890)
+    * ssh: generate ed25519 host keys if supported (LP: #1461242)
+    * test fixes and cleanups
+    * fix reading of availability-zone on GCE (LP: #1470880)
+    * fix cloudsigma datasource with python3 (LP: #1475215)
+    * fix rightscale user-data
+    * fix consumption of CloudStack passwords on newer CloudStack platforms
+      (LP: #1440263, #1464253)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 22 Jul 2015 17:06:18 -0400
+
+cloud-init (0.7.7~bzr1109-0ubuntu2) wily; urgency=medium
+
+  * d/control: cloud-init Recommends gdisk (LP: #1462521)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 05 Jun 2015 16:33:38 -0400
+
+cloud-init (0.7.7~bzr1109-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * Azure: Redact on-disk user password in /var/lib/ovf-env.xml
+      (LP: #1311827)
+    * EC2: be aware of eu-central-1 availability zone (LP: #1456684)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 28 May 2015 10:54:45 -0400
+
+cloud-init (0.7.7~bzr1106-0ubuntu1) wily; urgency=medium
+
+  * New upstream snapshot.
+    * Azure: remove strict dependency on walinux-agent, but still utilize
+      it for the time being.
+    * fix read_seeded that is used in seeding user-data and meta-data
+      from additional locations (LP: #1455233)
+    * fix bug preventing partitioning of disks in many cases. (LP: #1311463)
+    * Azure: do not override hostname if user has set it (LP: #1375252)
+    * Fix GCE datasource not handling per-instance SSH keys (LP: #1403617)
+    * Allow specifying of uid in user/group config.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 15 May 2015 17:04:19 -0400
+
+cloud-init (0.7.7~bzr1091-0ubuntu1) vivid; urgency=medium
+
+  * New upstream snapshot.
+    * fix processing of user-data in cloud-config-archive format (LP: #1445143)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 17 Apr 2015 12:04:16 -0400
+
+cloud-init (0.7.7~bzr1088-0ubuntu3) vivid; urgency=medium
+
+  * systemd/*.service: don't declare a Wants/Requires on network.target; this
+    is a passive target that should only be pulled in by implementors of the
+    networking service.  The requirement for network needs to be 
+    expressed as a dependency on network-online.target.  LP: #1440180.
+
+ -- Steve Langasek <steve.langasek@xxxxxxxxxx>  Thu, 09 Apr 2015 07:35:55 -0700
+
+cloud-init (0.7.7~bzr1088-0ubuntu2) vivid; urgency=medium
+
+  [ Didier Roche ]
+  * Don't start or restart cloud-init services on install and upgrade
+    (LP: #1438520)
+
+  [ Scott Moser ]
+  * d/control: Build-Depends on iproute2 (tests)
+  * d/control: Only Recommend (not both Depend and Recommend)
+    software-properties-common
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 03 Apr 2015 11:13:28 -0400
+
+cloud-init (0.7.7~bzr1088-0ubuntu1) vivid; urgency=medium
+
+  * New upstream snapshot.
+    * adjust cc_snappy for snappy install package with config. (LP: #1438836)
+      snappy install takes config as argument rather than '--config' flag.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 31 Mar 2015 14:21:48 -0400
+
+cloud-init (0.7.7~bzr1087-0ubuntu1) vivid; urgency=medium
+
+  * New upstream snapshot.
+    * SmartOS: update ds to use v2 metadata. (LP: #1436417) [Daniel Watkins]
+    * Fix NoCloud local datasource to only activate if told to do so.
+    * fix snappy package installation. (LP: #1437137)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 27 Mar 2015 17:09:34 -0400
+
+cloud-init (0.7.7~bzr1084-0ubuntu1) vivid; urgency=medium
+
+  * New upstream snapshot.
+    * systemd: update config and final to run even if init jobs fail
+      (LP: #1432758)
+    * emit_upstart: fix use of undeclared variable
+    * SmartOS: fixes for python3 reading from serial device.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 17 Mar 2015 16:48:42 -0400
+
+cloud-init (0.7.7~bzr1081-0ubuntu1) vivid; urgency=medium
+
+  * fix failure of configure due to postinst usage of iteritems with python3
+  * New upstream snapshot.
+    * better python3 handling of ignored binary mime parts
+    * DataSourceMAAS: fix usage of oauthlib and 'timestamp'
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 11 Mar 2015 13:52:04 -0400
+
+cloud-init (0.7.7~bzr1078-0ubuntu1) vivid; urgency=medium
+
+  * New upstream snapshot.
+    * run snappy module only on snappy (LP: #1428495)
+    * MAAS: adjust timestamp on oauthlib when needed (LP: #1427939)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 05 Mar 2015 15:22:53 -0500
+
+cloud-init (0.7.7~bzr1076-0ubuntu1) vivid; urgency=medium
+
+  * New upstream snapshot.
+    * test case fixes for http_pretty
+    * python2.6 fixes
+    * Convert dmidecode values to sysfs names before looking. (LP: #1427687)
+    * add snappy support (LP: #1428139)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 04 Mar 2015 17:13:55 -0500
+
+cloud-init (0.7.7~bzr1072-0ubuntu1) vivid; urgency=medium
+
+  * d/control: move software-properties-common to Recommends
+    this helps reduce snappy builds
+  * New upstream snapshot.
+    * fix MAAS datasource (LP: #1427263)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 03 Mar 2015 20:46:41 -0500
+
+cloud-init (0.7.7~bzr1067-0ubuntu1) vivid; urgency=medium
+
+  * New upstream snapshot.
+    * fix broken consumption of gzipped user-data (LP: #1424900)
+    * functional user-data on Azure again (LP: #1423972)
+    * CloudStack: support fetching password from virtual router (LP: #1422388)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 26 Feb 2015 14:19:16 -0500
+
+cloud-init (0.7.7~bzr1060-0ubuntu1) vivid; urgency=medium
+
+  * New upstream snapshot.
+    * Fix for ascii decode in DataSourceAzure (LP: #1422993).
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 20 Feb 2015 08:05:20 -0500
+
+cloud-init (0.7.7~bzr1059-0ubuntu1) vivid; urgency=medium
+
+  * New upstream snapshot.
+    * support for gpt partitioning, utilized in Azure [Daniel Watkins]
+    * fix bug in exception handling in mount_cb.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 13 Feb 2015 16:05:59 -0500
+
+cloud-init (0.7.7~bzr1055-0ubuntu1) vivid; urgency=medium
+
+  * New upstream snapshot.
+    * move to python3 (LP: #1247132)
+    * systemd: run cloud-init before systemd-user-sessions.service
+    * Use the GCE short hostname. (LP: #1383794)
+    * Enable user-data encoding support for GCE. (LP: #1404311)
+    * Update to use a newer and better OMNIBUS_URL
+    * Be more tolerant of 'ssh_authorized_keys' types
+    * Fix parse_ssh_config failing in ssh_util.py
+    * Increase the robustness/configurability of the chef module.
+    * retain trailing newline from template files when using
+      jinja2 (LP: #1355343)
+    * fix broken output handling (LP: #1387340)
+    * digital ocean datasource
+    * update url in config drive documentation
+    * freebsd: enable correct behavior on Ec2.
+    * freebsd: Use the proper virtio FreeBSD network interface name.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 11 Feb 2015 15:55:58 -0500
+
+cloud-init (0.7.6~bzr1022-0ubuntu1) utopic; urgency=medium
+
+  * New upstream snapshot.
+    * support for writing swap files per user config (disabled by default).
+    * fixes for freebsd support of config drive.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 01 Oct 2014 16:27:44 -0400
+
+cloud-init (0.7.6~bzr1020-0ubuntu1) utopic; urgency=medium
+
+  [ Ben Howard ]
+  * Fix for cloud-init misidentifying grub install device (LP: #1336855).
+
+  [ Scott Moser ]
+  * New upstream snapshot.
+    * cc_grub_dpkg: consider /dev/xvda as candidate for grub installation
+      (LP: #1336855)
+    * resizefs: fix backgrounding of resizefs (LP: #1338614) 
+    * cloud-init-blocknet: remove debug code
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 23 Sep 2014 14:20:09 -0400
+
+cloud-init (0.7.6~bzr1016-0ubuntu1) utopic; urgency=medium
+
+  * New upstream snapshot.
+    * upstart: block networking from coming up until after
+      cloud-init-local has run. (LP: #1368861)
+    * upstart: ensure /run mounted before cloud-init-local (LP: #1353008)
+    * log failures in route info.
+    * Openstack: do not search redundant urls for openstack datasource.
+      do not load urls just to check if they're present when crawling.
+    * ConfigDrive: fixes for better consumption of vendor-data
+    * resizefs: make sure target is writable before attempting
+      in order to avoid failures in containers. (LP: #1366891)
+    * freebsd fixes.
+    * ssh_authkey_fingerprints: correctly allow disabling (LP: #1340903)
+    * CloudStack: work around bug in metadata service (LP: #1356855)
+    * docs: fix doc about disk-setup 'table_type' (LP: #1313114)
+    * resolv.conf: fix rendering if options not provided (LP: #1328953)
+    * ensure keys exist before running ssh on systemd (LP: #1333920)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 12 Sep 2014 18:12:31 -0400
+
+cloud-init (0.7.6~bzr992-0ubuntu1) utopic; urgency=medium
+
+  * New upstream snapshot.
+    * ubuntu-init-switch: fixes and minor tweaks.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 31 Jul 2014 16:11:27 -0400
+
+cloud-init (0.7.6~bzr990-0ubuntu1) utopic; urgency=medium
+
+  * debian/README.source: get changelog from trunk when new snapshot
+  * New upstream snapshot.
+    * add ubuntu-init-switch module for testing systemd.
+    * do not put comments in /etc/timezone (LP: #1341710)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 31 Jul 2014 15:05:51 -0400
+
+cloud-init (0.7.6~bzr987-0ubuntu2) utopic; urgency=medium
+
+  * debian/control: drop build-depends on python-selinux as it is
+    not in main.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 25 Jul 2014 12:47:39 -0400
+
+cloud-init (0.7.6~bzr987-0ubuntu1) utopic; urgency=medium
+
+  * incorporate systemd and build system changes from trunk.
+  * New upstream snapshot.
+    * less noisy logs
+    * allow usage of jinja2 templates (LP: #1219223)
+    * test case cleanups
+    * change build system to be dh and pybuild
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 24 Jul 2014 19:55:30 -0400
+
+cloud-init (0.7.6~bzr976-0ubuntu1) utopic; urgency=medium
+
+  * debian/cloud-init.templates: fix choices so dpkg-reconfigure works as
+    expected (LP: #1325746)
+  * New upstream snapshot.
+    * tests: SmartOS test not depend on /dev/ttyS1 device node (LP: #1316597)
+    * poll ttyS1 only after check for 'cloudsigma' in dmidecode (LP: #1316475)
+    * cloudsigma: support vendor-data (LP: #1303986)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 03 Jun 2014 16:41:07 -0400
+
+cloud-init (0.7.5-0ubuntu1) trusty; urgency=medium
+
+  * New upstream release.
+    * support base64 encoded user-data in OpenNebula, required
+      to allow arbitrary content in user-data (LP: #1300941)
+    * pep8 and pylint fixes
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 01 Apr 2014 14:39:03 -0400
+
+cloud-init (0.7.5~bzr970-0ubuntu1) trusty; urgency=medium
+
+  * New upstream snapshot.
+    * fix NoCloud and seedfrom on the kernel command line (LP: #1295223)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 20 Mar 2014 12:35:58 -0400
+
+cloud-init (0.7.5~bzr969-0ubuntu1) trusty; urgency=medium
+
+  * New upstream snapshot.
+    * Azure: Reformat ephemeral disk if it got re-provisioned
+      by the cloud on any reboot (LP: #1292648)
+    * final_message: fix replacement of upper case keynames (LP: #1286164)
+    * seed_random: do not capture output.  Correctly provide
+      environment variable RANDOM_SEED_FILE to command.
+    * CloudSigma: support base64 encoded user-data
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 19 Mar 2014 14:04:34 -0400
+
+cloud-init (0.7.5~bzr964-0ubuntu1) trusty; urgency=medium
+
+  * New upstream snapshot.
+    * SmartOS, AltCloud: disable running on arm systems due to bug
+      (LP: #1243287, #1285686) [Oleg Strikov]
+    * Allow running a command to seed random, default is 'pollinate -q'
+      (LP: #1286316) [Dustin Kirkland]
+    * Write status to /run/cloud-init/status.json for consumption by
+      other programs (LP: #1284439)
+    * fix output of network information to not include 'addr:' (LP: #1285185)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 03 Mar 2014 16:59:27 -0500
+
+cloud-init (0.7.5~bzr952-0ubuntu1) trusty; urgency=medium
+
+  * New upstream snapshot.
+    * fix broken seed of DAtaSourceNoCloud via external disk.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 18 Feb 2014 14:10:52 -0500
+
+cloud-init (0.7.5~bzr950-0ubuntu1) trusty; urgency=medium
+
+  * New upstream snapshot.
+    * support for vendor-data in NoCloud
+    * fix in is_ipv4 to accept IP addresses with a '0' in them.
+    * Azure: fix issue when stale data in /var/lib/waagent (LP: #1269626)
+    * skip config_modules that declare themselves only verified on a set of
+      distros.  Add them to 'unverified_modules' list to run anyway.
+    * Add CloudSigma datasource [Kiril Vladimiroff]
+    * Add initial support for Gentoo and Arch distributions [Nate House]
+    * Add GCE datasource [Vaidas Jablonskis]
+    * Add native Openstack datasource which reads openstack metadata
+      rather than relying on EC2 data in openstack metadata service.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 14 Feb 2014 14:39:56 -0500
+
+cloud-init (0.7.5~bzr933-0ubuntu1) trusty; urgency=medium
+
+  * debian/control: bump Standards-Version to 3.9.5
+  * debian/control: drop boto dependency no longer required in trunk.
+  * New upstream snapshot.
+    * ConfigDrive: consider partitions labelled correctly as possible sources.
+    * find root filesystem for resizing in cases where there is no initramfs
+    * removal of dependency on python-boto
+    * vendor-data support, and usage of that in Joyent datasource.
+    * change default output to be logged to /var/log/cloud-init-output.log
+    * SeLinuxGuard: Cast file path to string. (LP: #1260072)
+    * drop support for resizing via parted (LP: #1212492)
+    * SmartOS: changes to address changes in platform (LP: #1272115)
+    * FreeBSD support.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 24 Jan 2014 22:41:57 -0500
+
+cloud-init (0.7.5~bzr902-0ubuntu1) trusty; urgency=medium
+
+  * debian/control: Build-Depend on python-jsonpatch as #717916 is now fixed.
+  * debian/control: Recommend eatmydata (LP: #1236531)
+  * New upstream snapshot.
+    * support invoking apt with 'eatmydata' (LP: #1236531)
+    * add a message in log about dynamic import failures
+  * New in '0.7.4' release.
+    * fix reading of mount information on kernels < 2.6.26 (LP: #1248625)
+    * SmartOS: change 'region' to 'datacenter_name' to address change
+      in data provided to instance (LP: #1249124)
+    * support calling 'add-apt-repository' for 'cloud-archive:' entries
+      (LP: #1244355)
+    * DataSourceAzure: fix incompatibility with python 2.6 (LP: #1232175)
+    * fix bug mounting first partition of a alias'd name. (LP: #1236594)
+    * SmartOS: fix bug with hostname due to trailing whitespace (LP: #1236445)
+    * fix creation of partitions on Azure (LP: #1233698)
+    * cc_growpart: respect /etc/growroot-disabled (LP: #1234331)
+    * ubuntu config: add default user to 'sudo' group (LP: #1228228)
+    * Fix usage of libselinux-python when selinux is disabled
+    * add OpenNebula datasource
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 17 Dec 2013 16:51:30 -0500
+
+cloud-init (0.7.3-0ubuntu2) saucy; urgency=low
+
+  * fix bug where a mount entry of 'ephemeral0' would only consider
+    the unpartitioned device, not also the first partition (LP: #1236594)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 07 Oct 2013 20:16:02 -0400
+
+cloud-init (0.7.3-0ubuntu1) saucy; urgency=low
+
+  * New upstream release.
+    * Fix for SmartOS datasource when hostname is provided via dmi
+      data (LP: #1236445)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 07 Oct 2013 14:49:56 -0400
+
+cloud-init (0.7.3~bzr884-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * allow disabling of growpart via file /etc/growroot-disabled
+      (LP: #1234331)
+    * add default user to sudo group (LP: #1228228)
+    * fix disk creation on azure (LP: #1233698)
+    * DatasourceSmartOS: allow availabiltity-zone to be fed from the
+      datasource via 'region' (which allows 'mirrors' and other things
+      to make use of it).
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 04 Oct 2013 21:08:07 -0400
+
+cloud-init (0.7.3~bzr879-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * fixes to disk_setup config module and enabling of partition
+      creation and filesystem creation on Azure.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 27 Sep 2013 19:47:37 -0400
+
+cloud-init (0.7.3~bzr871-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * add 'disk_setup' config module for partitioning disks and
+      creating filesystems. (LP: #1218506)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 20 Sep 2013 20:46:08 -0400
+
+cloud-init (0.7.3~bzr869-0ubuntu1) saucy; urgency=low
+
+  * depend on cloud-utils or cloud-guest-utils (LP: #1224003)
+  * New upstream snapshot.
+    * Add OpenNebula datasource.
+    * Support reading 'random_seed' from metadata and writing to /dev/urandom
+    * fix for bug in log_time.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 11 Sep 2013 17:04:45 -0400
+
+cloud-init (0.7.3~bzr862-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * support base64 encoded data in the smart os datasource
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 29 Aug 2013 04:54:39 -0400
+
+cloud-init (0.7.3~bzr861-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * fix publishing hostname on azure (LP: #1214541)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 20 Aug 2013 16:06:22 -0400
+
+cloud-init (0.7.3~bzr860-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * fix setting of password for a user on azure. (LP: #1212723)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 15 Aug 2013 16:01:40 -0400
+
+cloud-init (0.7.3~bzr858-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * fix resizing of root partition by preferring the functional 'growpart'
+      support over the broken 'parted resizepart' support (LP: #1212444)
+    * add options for apt_ftp_proxy, apt_https_proxy and apt_config
+      (LP: #1057195)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 14 Aug 2013 21:44:22 -0400
+
+cloud-init (0.7.3~bzr851-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * azure: do not wait for output of bouncing interface (ifdown; ifup)
+      as that waits on output of all ifupdown scripts to close all file
+      descriptors.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 29 Jul 2013 12:21:08 -0400
+
+cloud-init (0.7.3~bzr850-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * fix bouncing of interface. environment was not being modified
+      so command invoked did not have access to 'interface'.
+  * debian/README.source: update to read upstream version from trunk
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 26 Jul 2013 14:34:02 -0400
+
+cloud-init (0.7.3~bzr849-0ubuntu2) saucy; urgency=low
+
+  * debian/control: fix bad dependency on python-jsonpatch 
+    by build-depending on python-json-patch, so dh_python2
+    can find the right package (LP: #1205358).
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 26 Jul 2013 10:47:59 -0400
+
+cloud-init (0.7.3~bzr849-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * azure: support publishing hostname via bouncing interface (LP: #1202758)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 25 Jul 2013 17:08:30 -0400
+
+cloud-init (0.7.3~bzr845-0ubuntu2) saucy; urgency=low
+
+  * debian/control: fix dependency python-json-patch.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 24 Jul 2013 15:01:24 -0400
+
+cloud-init (0.7.3~bzr845-0ubuntu1) saucy; urgency=low
+
+  * Reads the currently set value in /etc/cloud/cloud.cfg.d/90_dpkg.cfg to
+    db_set the value of cloud-init/datasources. (Closes: #709773)
+  * New upstream snapshot.
+    * azure: use deployment-id rather than static instance-id (LP: #1204190)
+    * config-drive: make 'availability_zone' available. (LP: #1190431)
+    * finalize handlers even on error (LP: #1203368)
+    * azure: fix password based access (LP: #1201969)
+    * add smartos (Joyent cloud) datasource
+    * support patching cloud-config via jsonp (LP: #1200476)
+  * debian/control: add dependency on python-jsonp
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 24 Jul 2013 13:47:53 -0400
+
+cloud-init (0.7.3~bzr829-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * fix to upstart_job handler if version upstart is version 1.8.
+    * Azure datasource: allow userdata to be found in node named
+      'UserData' or 'CustomData'
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 11 Jul 2013 10:20:03 -0400
+
+cloud-init (0.7.3~bzr826-0ubuntu2) saucy; urgency=low
+
+  * debian/cloud-init.templates: add 'Azure' datasource to list
+    of available datasources.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 10 Jul 2013 16:31:48 -0400
+
+cloud-init (0.7.3~bzr826-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * Fix omnibus support (LP: #1182265)
+    * invoke 'initctl reload-configuration' on upstart jobs again
+      (LP: #1124384)
+  * Remove unowned files in /etc/apt/apt.conf.d/ after purge. (Closes #674237)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 10 Jul 2013 13:35:59 -0400
+
+cloud-init (0.7.2-0ubuntu1) saucy; urgency=low
+
+  * New upstream release.
+    * fix merging routines to be backwards compatible (LP: #1180867)
+    * fix for python 2.6
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 05 Jun 2013 11:12:46 -0400
+
+cloud-init (0.7.2~bzr812-0ubuntu1) saucy; urgency=low
+
+  * New upstream snapshot.
+    * catch up with upstream, which is hopefully 0.7.2
+    * straighten out the merging routines
+    * fix a bug in Maas datasource
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 10 May 2013 17:53:49 -0400
+
+cloud-init (0.7.2~bzr809-0ubuntu1) raring; urgency=low
+
+  * New upstream snapshot.
+    * make apt-get invoke 'dist-upgrade' rather than 'upgrade' for
+      package_upgrade. (LP: #1164147)
+    * workaround 2.6 kernel issue that stopped blkid from showing /dev/sr0
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 11 Apr 2013 12:55:51 -0400
+
+cloud-init (0.7.2~bzr804-0ubuntu1) raring; urgency=low
+
+  * New upstream snapshot.
+    * use python-requests rather than urllib2 for http (LP: #1067888)
+    * handle failure of resizefs better.  Specifically, do not show
+      warnings or stack trace in lxc (LP: #1160462)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 27 Mar 2013 10:04:41 -0400
+
+cloud-init (0.7.2~bzr795-0ubuntu1) raring; urgency=low
+
+  * New upstream snapshot.
+    * documentation on write-files module (LP: #1111205)
+    * support for specifying package versions in package installs
+    * DataSourceNoCloud: allow specifyin user-data and meta-data in
+      the datasource config (LP: #1115833)
+    * work around bug in upstart for now (1124384)
+    * support resizing btrfs fileystems
+    * parse ssh keys more correctly (LP: #1136343)
+    * upstart/cloud-init-nonet.conf: handle sigterm gracefully (LP: #1015223)
+    * support growing partitions (LP: #1136936)
+    * use --force-unsafe-io for dpkg installations to improve speed
+      This is sane as it happens on instance initialization.
+    * more powerful and user-suppliable cloud-config merge mechanisms
+      (LP: #1023179)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 07 Mar 2013 17:33:59 -0500
+
+cloud-init (0.7.1-0ubuntu5) raring; urgency=low
+
+  * catchup-751-760.patch (sync to 760)
+    * DataSourceConfigDrive: allow config-drive data to come from a 
+      CD-ROM (LP: #1100545)
+    * Allow 'sr0' to be used as a source for mount config [Vlastimil Holer]
+    * do not log passwords provided via config (LP: #1096417)
+    * DataSourceCloudStack: Attempt to find the 'virtual router' as provided
+      from dhcp responses, rather than assuming it is the default route 
+      (LP: #1089989) [Gerard Dethier]
+      in the CloudStack environment use virtual router rather than default route 
+    * notify upstart after writing upstart jobs to support filesystems that
+      do not support inotify such as overlayfs (LP: #1080841)
+    * fix cloud-config 'lock_password' user setup (LP: #1096423)
+  * debian/README.source: minor improvements.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 18 Jan 2013 10:12:34 -0500
+
+cloud-init (0.7.1-0ubuntu4) raring; urgency=low
+
+  * cherry pick relevant patches from trunk up to revision 750
+  * use short form of '--stderr' argument to logger for better cross
+    distro support (LP: #1083715)
+  * puppet: make installation configurable (LP: #1090205)
+  * chef: add omnibus installation method
+  * fix allowing cloud-config input via user-data to affect the
+    apt mirror selection (LP: #090482)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 17 Dec 2012 10:48:23 -0500
+
+cloud-init (0.7.1-0ubuntu3) raring; urgency=low
+
+  * cherry pick relevant patches from trunk up to revision 745
+  * fix writing of sudoers when suders rule is a string rather than
+    an array (LP: #1079002)
+  * add trailing slash to sudoers files that are written
+  * fix resizefs module when 'noblock' was provided (LP: #1080985)
+  * make sure there is no blank line before cloud-init entry in
+    there are no blank lines in /etc/ca-certificates.conf (LP: #1077020)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 03 Dec 2012 21:45:48 -0500
+
+cloud-init (0.7.1-0ubuntu2) raring; urgency=low
+
+  * debian/watch: add watch file
+  * add 'ubuntu' user to sudoers (LP: #1080717)
+  * set 'ubuntu' user shell to bash
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 19 Nov 2012 09:38:29 -0500
+
+cloud-init (0.7.1-0ubuntu1) raring; urgency=low
+
+  * New upstream release.
+    * landscape: install landscape-client package if not installed.
+      only take action if cloud-config is present (LP: #1066115)
+    * landscape: restart landscape after install or config (LP: #1070345)
+    * multipart/archive: do not fail on unknown headers in multipart
+      mime or cloud-archive config (LP: #1065116).
+    * tools/Z99-cloud-locale-test.sh: avoid warning when user's shell is
+      zsh (LP: #1073077)
+    * fix stack trace when unknown user-data input had unicode (LP: #1075756)
+    * split 'apt-update-upgrade' config module into 'apt-configure' and
+      'package-update-upgrade-install'.  The 'package-update-upgrade-install'
+      will be a cross distro module.
+    * fix bug where cloud-config from user-data could not affect system_info
+      settings (LP: #1076811)
+    * add yum_add_repo configuration module for adding additional yum repos
+    * fix public key importing with config-drive-v2 datasource (LP: #1077700)
+    * handle renaming and fixing up of marker names (LP: #1075980)
+      this relieves that burden from the distro/packaging.
+    * group config: fix how group members weren't being translated correctly
+      when the group: [member, member...] format was used (LP: #1077245)
+    * work around an issue with boto > 0.6.0 that lazy loaded the return from 
+      get_instance_metadata().  This resulted in failure for cloud-init to
+      install ssh keys. (LP: #1068801)
+    * add power_state_change config module for shutting down stystem after
+      cloud-init finishes. (LP: #1064665)
+
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 14 Nov 2012 15:18:50 -0500
+
+cloud-init (0.7.0-0ubuntu2) quantal; urgency=low
+
+  * config-drive: copy metadata entry 'hostname' to 'local-hostname' to fix
+    config modules (set_hostname) will function as expected (LP: #1061964)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 05 Oct 2012 11:45:15 -0400
+
+cloud-init (0.7.0-0ubuntu1) quantal; urgency=low
+
+  * New upstream release.
+    * minor change to oauth header fix (LP: #978127).
+    * incorporation of 0.7.0 upstream release.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 01 Oct 2012 14:19:46 -0400
+
+cloud-init (0.7.0~bzr677-0ubuntu1) quantal; urgency=low
+
+  * add CloudStack to DataSources listed by dpkg-reconfigure (LP: #1002155)
+  * New upstream snapshot.
+    * 0440 permissions on /etc/sudoers.d files rather than 0644
+    * get host ssh keys to the console (LP: #1055688)
+    * MAAS DataSource adjust timestamp in oauth header to one based on the
+      timestamp in the response of a 403.  This accounts for a bad local
+      clock. (LP: #978127)
+    * re-start the salt daemon rather than start to ensure config changes
+      are taken.
+    * allow for python unicode types in yaml that is loaded.
+    * cleanup in how config modules get at users and groups.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Sun, 30 Sep 2012 14:29:04 -0400
+
+cloud-init (0.7.0~bzr659-0ubuntu2) quantal; urgency=low
+
+  * debian/cloud-init.templates: fix bad template file (LP: #1053239)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 20 Sep 2012 09:18:20 -0400
+
+cloud-init (0.7.0~bzr659-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    * add signal handlers to more cleanly exit
+    * add logging fallback in case logging fails
+    * documentation fix for landscape config (LP: #1042764)
+    * do not write a comment in /etc/hostname (LP: #1052664)
+    * fix incorrect ubuntu mirrors for 'ports' arches [Robbie Basak]
+    * fix generation of hostname based on ip address in datasource 
+      (LP: #1050962) [Andy Grimm]
+    * remove 'start networking' from cloud-init-nonet and replace it
+      with container specific fixes (LP: #1031065)
+    * fix landscape configuration so client will run (LP: #1042758)
+    * enable all available datasources (adding AltCloud and None)
+    * fix bug where user data scripts re-ran on upgrade from 10.04 versions
+      (LP: #1049146)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 19 Sep 2012 22:08:51 -0400
+
+cloud-init (0.7.0~bzr644-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    * fix cloud-archives (LP: #1044594)
+    * fix set_passwords for usergroups as a list (LP: #1044553)
+  * fix 'failed to setup apt-pipelining' warning on install due to
+    old 0.6 style usage of cloud-init.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Sat, 01 Sep 2012 20:11:34 -0400
+
+cloud-init (0.7.0~bzr642-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    * support using launch-index (ami-launch-index) (LP: #1023177)
+    * usergroup related fixes (LP: #1041384, #1044044, #1044508)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 31 Aug 2012 17:04:06 -0400
+
+cloud-init (0.7.0~bzr639-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    * fix broken ssh_import_id, which would give stack trace
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 28 Aug 2012 14:09:47 -0400
+
+cloud-init (0.7.0~bzr637-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    * fix issue with public keys not being added to 'ubuntu' user
+      since the user was not created yet. (LP: #1042459)
+    * only search the top level domain 'instance-data' for the EC2
+      metadata service, to avoid misconfiguration or unexpected results
+      by searching search entries in /etc/resolv.conf (LP: #1040200)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 27 Aug 2012 20:27:06 -0400
+
+cloud-init (0.7.0~bzr634-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    * support for datasource from config-drive-v2 (LP: #1037567)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 24 Aug 2012 17:24:26 -0400
+
+cloud-init (0.7.0~bzr633-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    * support creating users on boot. remove requirement for a 'ubuntu'
+      user to be previously present in image. (LP: #1028503)
+    * add experimental apt_reboot_if_required flag to reboot if necessary
+      after upgrade or package install (LP: #1038108)
+    * improve mirror selection for a distro: 
+      * support arm mirrors (LP: #1028501)
+      * support seeding security mirror (LP: #1006963)
+      * support dns mirrors including availability-zone reference
+        (LP: #1037727)
+    * include a "None" datasource so items like ssh host key generation
+      occur if there is no other metadata service. (LP: #906669)
+    * print authorized_keys for users to the console (LP: #1010582)
+    * Add RHEVm and vSphere support as datasource AltCloud [Joseph VLcek]
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 23 Aug 2012 01:06:34 -0400
+
+cloud-init (0.7.0~bzr614-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    * disable searching for 'ubuntu-mirror' in local dns to find a
+      local mirror (LP: #974509)
+    * emit the cloud-config event (LP: #1028674) 
+    * write timestamps to console on reboot and shutdown (LP: #1018554)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 03 Aug 2012 14:55:37 -0400
+
+cloud-init (0.7.0~bzr608-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    * fix issue with EC2 datasource that prevented /mnt from being mounted.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 16 Jul 2012 16:49:55 -0400
+
+cloud-init (0.7.0~bzr604-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    * add cc_write_file for injecting files via cloud-config (LP: #1012854)
+    * fix issue with empty user data
+    * remove some un-needed warnings to console output in DataSourceOVF
+    * allow user-data scripts output through to the console
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 12 Jul 2012 16:11:01 -0400
+
+cloud-init (0.7.0~bzr583-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+  * debian/control: wrap-and-sort
+  * debian/control: actually depend on software-properties-common
+  * debian/control: depend on python-cheetah again instead of python-tempita
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 09 Jul 2012 17:41:22 -0400
+
+cloud-init (0.7.0~bzr564-0ubuntu2) quantal; urgency=low
+
+  * debian/control: Build-Depends on python-setuptools (LP: #1022101)
+
+ -- Angel Abad <angelabad@xxxxxxxxxx>  Sat, 07 Jul 2012 18:43:05 +0200
+
+cloud-init (0.7.0~bzr564-0ubuntu1) quantal; urgency=low
+
+  * New upstream snapshot.
+    Thanks to Joshua Harlow for hard work.
+  * depend on software-properties-common rather than
+    python-software-properties (LP: #1021418)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 06 Jul 2012 17:31:01 -0400
+
+cloud-init (0.6.3-0ubuntu3) quantal; urgency=low
+
+  * grub-legacy-ec2: add missing dependency on ucf (LP: #960336).
+
+ -- Robie Basak <robie.basak@xxxxxxxxxx>  Sun, 24 Jun 2012 05:10:13 +0100
+
+cloud-init (0.6.3-0ubuntu2) quantal; urgency=high
+
+  * Added -generic to Xen kernels list since -virtual has been dropped with
+    Quantal. (LP: #1005551)
+
+ -- Ben Howard <ben.howard@xxxxxxxxxx>  Tue, 29 May 2012 12:59:01 -0600
+
+cloud-init (0.6.3-0ubuntu1) precise; urgency=low
+
+  * New upstream release.
+    * improve chef examples for working configurations on 11.10 and 12.04
+      [Lorin Hochstein] (LP: #960564)
+    * fix bug in landscape module if /etc/landscape did not exist
+      (LP: #978329)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 11 Apr 2012 00:05:00 -0400
+
+cloud-init (0.6.3~bzr554-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+    * Fix bug in Chef support that required 'validation_cert' (LP: #960547)
+    * Provide user-friendly message when a user ssh's in with an invalid
+      locale (LP: #960547)
+    * Support reading a url reference to cloud-config from the kernel
+      command line.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 05 Apr 2012 01:24:42 -0400
+
+cloud-init (0.6.3~bzr551-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+    * support running resize2fs in the background (default=off) (LP: #961226)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 22 Mar 2012 14:33:59 -0400
+
+cloud-init (0.6.3~bzr548-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+    * If public-keys is a string, split it into multiple keys on newline
+      This specifically helps the MAAS data source, and should not negatively
+      affect others.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 19 Mar 2012 13:50:50 -0400
+
+cloud-init (0.6.3~bzr547-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+    * rename DataSourceMaaS to DataSourceMAAS.
+    * support public-keys in DataSourceMAAS
+    * Warn in user-data processing on non-multipart, non-handled data 
+    * CloudStack data source added (not enabled by default)
+  * fix bug in cloud-init.postinst where the name used was wrong
+    causing config-apt-pipelining to run more than intended
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 16 Mar 2012 14:12:38 -0400
+
+cloud-init (0.6.3~bzr539-0ubuntu3) precise; urgency=low
+
+  * make maas config file only readable by root (LP: #954721)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 14 Mar 2012 01:19:32 -0400
+
+cloud-init (0.6.3~bzr539-0ubuntu2) precise; urgency=low
+
+  [Cosmin Luta]
+  * add dependency on python-oauth (LP: #953915)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 13 Mar 2012 11:36:11 -0400
+
+cloud-init (0.6.3~bzr539-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+    * add ability to configure Acquire::http::Pipeline-Depth via
+      cloud-config setting 'apt_pipelining' (LP: #942061)
+    * if cloud-config settings removed default certificats
+      (remove-defaults), then seed package ca-certificates to not
+      install new ones on upgrade.
+    * run-parts now uses internal implementation rather than
+      separate command.
+    * add MaaS datasource (LP: #942061)
+  * debian/cloud-init.postinst: address population of apt_pipeline 
+    setting on installation.
+  * debian/cloud-init.postinst: support configuring cloud-init
+    maas datasource via preseed values cloud-init/maas-metadata-url and
+    cloud-init/maas-credentials. (LP: #942061)
+  * debian/cloud-init.postinst: support for (LP: #924375)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 09 Mar 2012 16:37:01 -0500
+
+cloud-init (0.6.3~bzr530-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+    - fix DataSourceNoCloud seeded from local or cmdline (LP: #942695)
+    - change 'islxc' to 'iscontainer' and use 'running-in-container' utility
+      from upstart rather than 'lxc-is-container' (LP: #941955)
+    - Do not fail on bad part handlers, instead catch error and log
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 28 Feb 2012 19:15:19 -0500
+
+cloud-init (0.6.3~bzr527-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+    - exit 0 in cloud-init if no metadata is found (nothing to do)
+    - documentation improvements
+    - support network config in DataSourceNoCloud
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 17 Feb 2012 17:11:50 -0500
+
+cloud-init (0.6.3~bzr519-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+    - [Mike Milner] add support for managing CA Certificates (LP: #915232)
+    - in ci-info lines, use '.' to for empty field for easier machine reading
+    - support empty lines in "#include" files (LP: #923043)
+    - [Jef Baeur] support configuration of salt minions Bauer) (LP: #927795)
+    - DataSourceOVF: only search for OVF data on ISO9660 filesystems (LP: #898373)
+    - DataSourceConfigDrive: support getting data from openstack config drive
+      (LP: #857378)
+    - [Juerg Haefliger] formating and pylint cleanups
+  * increase timeouts for initial config check for metadata service
+    to address slow metadata service in openstack
+  * add awareness of ConfigDrive data source
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 16 Feb 2012 17:27:05 -0500
+
+cloud-init (0.6.3~bzr502-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+    - [Mike Milner] add test case framework (LP: #890851)
+    - [Juerg Haefliger] fix pylint warnings (LP: #914739)
+    - fix regression where ec2 mirrors were not selected (LP: #915282)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 12 Jan 2012 17:56:52 +0100
+
+cloud-init (0.6.3~bzr497-0ubuntu1) precise; urgency=low
+
+  * New upstream snapshot.
+    - cloud-config support for configuring apt-proxy
+    - selection of local mirror based on presense of 'ubuntu-mirror' dns
+      entry in local domain. (LP: #897688)
+    - DataSourceEc2: more resilliant to slow metadata service (LP: #894279)
+    - close stdin in all programs launched by cloud-init (LP: #903993)
+    - revert management of /etc/hosts to 0.6.1 style (LP: #890501, LP: #871966)
+    - write full ssh keys to console for easy machine consumption (LP: #893400)
+    - put INSTANCE_ID environment variable in bootcmd scripts
+    - add 'cloud-init-per' script for easily running things with a given freq
+      (this replaced cloud-init-run-module)
+    - support configuration of landscape-client via cloud-config (LP: #857366)
+    - part-handlers now get base64 decoded content rather than 2xbase64 encoded
+      in the payload parameter. (LP: #874342)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 22 Dec 2011 04:07:38 -0500
+
+cloud-init (0.6.2-0ubuntu2) precise; urgency=low
+
+  * Build using dh_python2. LP: #904248.
+  * debian/rules: Explicitly set DEB_PYTHON2_MODULE_PACKAGES = cloud-init.
+
+ -- Matthias Klose <doko@xxxxxxxxxx>  Sat, 17 Dec 2011 21:08:23 +0000
+
+cloud-init (0.6.2-0ubuntu1) precise; urgency=low
+
+  * New upstream release
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 27 Oct 2011 23:05:15 -0400
+
+cloud-init (0.6.1-0ubuntu20) oneiric; urgency=low
+
+  * fix broken path if local-hostname was not in metadata (LP: #857380)
+  * redirect output of 'start networking' in 'cloud-init-nonet' to /dev/null
+  * include GPLv3 in source tree
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 23 Sep 2011 09:24:27 -0400
+
+cloud-init (0.6.1-0ubuntu19) oneiric; urgency=low
+
+  * If local-hostname is not in meta-data, attempt to look up hostname in
+    an alias in /etc/hosts. This will avoid setting domain portion of fqdn
+    to 'localdomain' in some cases (LP: #850206).
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 14 Sep 2011 15:15:00 -0400
+
+cloud-init (0.6.1-0ubuntu18) oneiric; urgency=low
+
+  * minor documentation improvement.
+
+  [Mike Moulton, Avishai Ish-Shalom]
+  * Chef support fixes. support for environment and initial attr (LP: #845208)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 13 Sep 2011 17:02:48 -0400
+
+cloud-init (0.6.1-0ubuntu17) oneiric; urgency=low
+
+  * fix issues with chef (LP: #845161)
+  * be more forgiving on metadata for public-keys (LP: #845155)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 09 Sep 2011 14:19:03 -0700
+
+cloud-init (0.6.1-0ubuntu16) oneiric; urgency=low
+
+  * catch up with trunk at revision 439
+  * warn on failure to set hostname (LP: #832175)
+  * properly wait for all static interfaces to be up before
+    cloud-init runs (depends on fix in LP:# 838968).
+  * in DataSources NoCloud and OVF, do not set hostname to the
+    static value 'ubuntuhost' if local-hostname is not in metadata
+    (LP: #838280)
+  * improve the way ssh_authorized_keys is updated, so that the
+    values given will be used. (LP: #434076, LP: #833499)
+  * cloud-init-notnet.conf: minor changes to config
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 01 Sep 2011 21:14:09 -0400
+
+cloud-init (0.6.1-0ubuntu15) oneiric; urgency=low
+
+  * catch up with trunk at revision 431
+  * add network debug info to console when cloud-init runs (LP: #828186)
+  * fix issue where subprocesses (apt-add-repository) where given
+    the console and would attempt to prompt user and hang boot (LP: #831505)
+  * add awareness of ecdsa to cc_ssh
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 23 Aug 2011 00:01:01 -0400
+
+cloud-init (0.6.1-0ubuntu14) oneiric; urgency=low
+
+  * change the handling of user-data (LP: #810044)
+   * boothooks will now run more than once as they were intended
+   * cloud-config and user-scripts will be updated from user data every boot
+  * Add a second type of part-handler that will be called on every boot 
+  * fix bad handling of /etc/hosts if manage_etc_hosts was false
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 08 Aug 2011 12:46:56 -0500
+
+cloud-init (0.6.1-0ubuntu13) oneiric; urgency=low
+
+  * do not install 92-uec-upgrade-available as a motd hook.  This file was
+    installed but did not do anything since updates-check was removed.
+  * support multiple staticly configured network devices, as long as
+    all of them come up early (LP: #810044)
+
+  [Marc Cluet]
+  * add support for passing mcollective keys via cloud-config
+  * add support for 'include-once' type.  include-once urls are only
+    retrieved once-per-instance rather than on every boot.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 01 Aug 2011 16:45:40 -0400
+
+cloud-init (0.6.1-0ubuntu12) oneiric; urgency=low
+
+  * do not give trace on failure to resize in lxc container (LP: #800856)
+  * increase the timeout on url gets for "seedfrom" values (LP: #812646)
+  * do not write entries for ephemeral0 on t1.micro (LP: #744019)
+
+  [Adam Gandalman]
+  * improve the updating of /etc/hosts with correct fqdn when possible
+    (LP: #812539)
+   
+  [Avishai Ish-Shalom]
+  * add chef support (cloudinit/CloudConfig/cc_chef.py) (LP: #798844)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 21 Jul 2011 05:51:03 -0400
+
+cloud-init (0.6.1-0ubuntu11) oneiric; urgency=low
+
+  [Marc Cluet]
+  * sanitize hosts file for system's hostname to 127.0.1.1 (LP: #802637)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 30 Jun 2011 14:12:47 -0400
+
+cloud-init (0.6.1-0ubuntu10) oneiric; urgency=low
+
+  * sync with trunk (rev 405)
+  * fix cloud-init in ubuntu lxc containers (LP: #800824)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 28 Jun 2011 06:42:45 -0400
+
+cloud-init (0.6.1-0ubuntu9) oneiric; urgency=low
+
+  * sync with trunk (rev 404)
+  * make metadata urls configurable, to support eucalyptus in
+    STATIC or SYSTEM modes (LP: #761847)
+  * support disabling byobu in cloud-config (LP: #797336)
+  * guarantee that ssh_config runs before sshd starts (LP: #781101)
+  * make prefix for keys added to /root/.ssh/authorized_keys configurable
+    and add 'no-port-forwarding,no-agent-forwarding,no-X11-forwarding'
+    to the default (LP: #798505)
+  * make 'cloud-config ready' command configurable (LP: #785551)
+  * make fstab fields used to 'fill in' shorthand mount entries configurable
+    (LP: #785542)
+  * read sshd_config to properly get path for authorized_keys (LP: #731849)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 17 Jun 2011 12:18:34 -0400
+
+cloud-init (0.6.1-0ubuntu8) natty; urgency=low
+
+  * instead of including /boot/grub, create it in postinst
+    of grub-legacy-ec2.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 15 Apr 2011 13:01:17 -0400
+
+cloud-init (0.6.1-0ubuntu7) natty; urgency=low
+
+  * grub-legacy-ec2: add /boot/grub directory so installation does
+    not depend on it already existing (LP: #759885)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 13 Apr 2011 11:03:04 -0400
+
+cloud-init (0.6.1-0ubuntu6) natty; urgency=low
+
+  * avoid upgrade prompt for grub-pc when devices are named xvdX (LP: #752361)
+  * catchup to trunk cloud-init (rev 395)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 06 Apr 2011 06:46:55 -0400
+
+cloud-init (0.6.1-0ubuntu5) natty; urgency=low
+
+  * fix --purge of grub-legacy-ec2 package (LP: #749444)
+  * catchup to trunk cloud-init (rev 394)
+  * support user-data formated in dos format by converting to unix for
+    user-scripts, boothooks, and upstart jobs (LP: #744965)
+  * removal of some debug code, minor documentation fix
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 04 Apr 2011 13:20:27 -0400
+
+cloud-init (0.6.1-0ubuntu4) natty; urgency=low
+
+  * catch up to trunk cloud-init (rev 389).
+  * fix bug in part-handler code, that broke part handlers (LP: #739694)
+  * fix sporadic resizefs failure (LP: #726938)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 21 Mar 2011 22:06:59 -0400
+
+cloud-init (0.6.1-0ubuntu3) natty; urgency=low
+
+  * catch up to trunk cloud-init (rev 385).
+  * attempt to install packages on failed apt-get update (LP: #728167)
+  * enabled timezone and mcollective cloud-config plugins
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 04 Mar 2011 21:17:21 -0500
+
+cloud-init (0.6.1-0ubuntu2) natty; urgency=low
+
+  * grub-legacy-ec2: Use dpkg-query --control-path instead of hard-coding a
+    path to debconf templates file, for compatibility with multiarch.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 01 Mar 2011 23:23:55 -0500
+
+cloud-init (0.6.1-0ubuntu1) natty; urgency=low
+
+  * New upstream release.
+  * fix for puppet configuration options (LP: #709946) [Ryan Lane]
+  * fix pickling of DataSource, which broke seeding.
+  * turn resize_rootfs default to True
+  * avoid mounts in DataSourceOVF if 'read' on device fails
+    'mount /dev/sr0' for an empty virtual cdrom device was taking 18 seconds
+  * add 'manual_cache_clean' option to select manual cleaning of
+    the /var/lib/cloud/instance/ link, for a data source that might
+    not be present on every boot
+  * make DataSourceEc2 retries and timeout configurable
+  * add 'bootcmd' like 'runcmd' to cloud-config syntax for running things early
+  * move from '#opt_include' in config file format to conf_d.
+    now local config files should live in /etc/cloud/cloud.cfg.d/
+  * move /etc/cloud/distro.cfg to /etc/cloud/cloud.cfg.d/90_dpkg.cfg
+  * allow /etc/hosts to be written from hosts.tmpl. which allows
+    getting local-hostname into /etc/hosts (LP: #720440)
+  * better handle startup if there is no eth0 (LP: #714807)
+  * update rather than append in puppet config [Marc Cluet]
+  * add cloud-config for mcollective [Marc Cluet]
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Sat, 19 Feb 2011 01:16:10 -0500
+
+cloud-init (0.6.0-0ubuntu4) natty; urgency=low
+
+  * fix running of user scripts (LP: #711480) (cherry pick 344) 
+  * fix 2 lintian warnings
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 01 Feb 2011 16:15:30 -0500
+
+cloud-init (0.6.0-0ubuntu3) natty; urgency=low
+
+  * make a better attempt at deciding if DataSourceEc2 should be used
+    on first install or upgrade
+  * fix behavior if def_log_file is empty in cloud-config (cherry pick 333)
+  * improve comment strings in rsyslog config (cherry pick 334)
+  * do not package cloud-init query (cherry pick 335)
+  * add previous-instance-id and previous-datasource to cloud/data
+    and cloud/instance/datasource files (cherry pick 337)
+  * allow setting of passwords and enabling/disabling ssh password auth
+    via cloud-config (cherry pick 338)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 31 Jan 2011 12:48:39 -0500
+
+cloud-init (0.6.0-0ubuntu2) natty; urgency=low
+
+  * add a debian/README.source file
+  * fix bug in fixing permission on /var/log/cloud-init.log (cherry pick)
+  * remove dependency on update-motd as updates-check was removed
+  * fix failure on cloud-init package purge
+  * add configuration of DataSources via debconf. Default to not searching
+    Ec2. (LP: #635188)
+  * fix naming of pre-processed (now user-data.txt.i) (cherry pick)
+  * upgrade existing content in /var/lib/cloud to 0.6.x format
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 27 Jan 2011 16:32:44 -0500
+
+cloud-init (0.6.0-0ubuntu1) natty; urgency=low
+
+  * New upstream release.
+  * fix permissions on cloud-init.log so syslog can write to it (LP: ##704509)
+  * rework of /var/lib/cloud layout
+  * remove updates-check (LP: #653220)
+  * support resizing root partition on first boot (enabled by default)
+  * added cloud-config options for setting hostname, phone_home
+  * indicate "all the way up" with message to console and file creation
+    in /var/lib/cloud/instance/ (LP: #653271)
+  * write ssh keys to console late in boot to ensure they're in console buffer
+  * add support for redirecting output of cloud-init, cloud-config, 
+    cloud-final via the config file, or user data config file
+  * add support for posting data about the instance to a url (phone_home)
+  * add minimal OVF transport (iso) support
+  * make DataSources that are attempted dynamic and configurable from
+    config. config option 'cloud_type' replaced by 'datasource_list'
+  * add 'timezone' option to cloud-config (LP: #645458)
+  * Added an additional archive format, that can be used for multi-part
+    input to cloud-init.  This may be more user friendly then mime-multipart
+    (LP: #641504)
+  * add support for reading Rightscale style user data (LP: #668400)
+  * make the message on 'disable_root' more clear (LP: #672417)
+  * do not require public key if private is given in ssh cloud-config 
+    (LP: #648905)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 26 Jan 2011 17:28:36 -0500
+
+cloud-init (0.5.15-0ubuntu4) natty; urgency=low
+
+  * Rebuild with python 2.7 as the python default.
+
+ -- Matthias Klose <doko@xxxxxxxxxx>  Wed, 08 Dec 2010 15:01:36 +0000
+
+cloud-init (0.5.15-0ubuntu3) maverick; urgency=low
+
+  * do not use ec2 ubuntu archive if instance is VPC (LP: #615545)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 16 Sep 2010 04:28:55 -0400
+
+cloud-init (0.5.15-0ubuntu2) maverick; urgency=low
+
+  * grub-legacy-ec2: boot with console=hvc0 (LP: #606373)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 15 Sep 2010 16:41:48 -0400
+
+cloud-init (0.5.15-0ubuntu1) maverick; urgency=low
+
+  * New upstream release.
+  * fix /etc/fstab cloudconfig entries for t1.micro and
+    change default fstab values for ephemeral0 to nobootwait (LP: #634102)
+  * grub-legacy-ec2: do not write chainload for grub2 to menu.lst
+    (LP: #627451)
+  * seed grub-pc correctly so update-grub runs on ec2 or uec(LP: #623609)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Sun, 12 Sep 2010 15:23:39 -0400
+
+cloud-init (0.5.14-0ubuntu5) maverick; urgency=low
+
+  * add missing imports for cc_puppet (LP: #632744)
+  * append to apt_sources files rather than truncating (LP: #627597)
+  * get double commented lines into sources.list (LP: #627439)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 08 Sep 2010 10:31:58 -0400
+
+cloud-init (0.5.14-0ubuntu4) maverick; urgency=low
+
+  * add commented out entries for partner, backports, and multiverse
+    (LP: #620572)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 26 Aug 2010 16:44:48 -0400
+
+cloud-init (0.5.14-0ubuntu3) maverick; urgency=low
+
+  * fix syntax error in cloudinit/util.py (failed installation)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 17 Aug 2010 22:22:06 -0400
+
+cloud-init (0.5.14-0ubuntu2) maverick; urgency=low
+
+  * fix bug preventing 'seedfrom' from working (LP:617400)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 17 Aug 2010 15:49:13 -0400
+
+cloud-init (0.5.14-0ubuntu1) maverick; urgency=low
+
+  * New upstream release.
+   - support for reading metadata and userdata from filesystem
+   - support for boot without metadata at all
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 12 Aug 2010 14:45:28 -0400
+
+cloud-init (0.5.13-0ubuntu3) maverick; urgency=low
+
+  * grub-legacy-ec2: fix 'apt-get --reinstall' and dpkg-divert (LP: #611812)
+  * enable -virtual kernels as "xen" kernels (pv_ops now functional)
+  * fix bad syntax in cloud-init-run-module.py
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 02 Aug 2010 16:26:48 -0400
+
+cloud-init (0.5.13-0ubuntu2) maverick; urgency=low
+
+  * debian/control: drop ssh-import as a recommends, as this has been
+    subsumed by openssh-server
+
+ -- Dustin Kirkland <kirkland@xxxxxxxxxx>  Sat, 24 Jul 2010 21:02:40 +0200
+
+cloud-init (0.5.13-0ubuntu1) maverick; urgency=low
+
+  * New upstream release.
+  * invoke dpkg with --force-confold (LP: #607642)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 21 Jul 2010 11:58:53 -0400
+
+cloud-init (0.5.12-0ubuntu8) maverick; urgency=low
+
+  * update-grub-legacy-ec2:
+    - add code to stop use of 'uuid' grub syntax
+    - change fallback grub device from (hd0,0) to (hd0)
+    - change timeout in menu.lst to 0
+  * grub-legacy-ec2: add grub-set-default functionality (LP: #605961)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 15 Jul 2010 13:07:01 -0400
+
+cloud-init (0.5.12-0ubuntu7) maverick; urgency=low
+
+  * update-grub-legacy-ec2:                                                     
+    - force setting of indomU so output of build process has
+      a menu.lst with -ec2 kernels listed.
+    - remove 'quite splash' from kernel options
+    - make sure grub_root_device is set to hd0 in image build
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 13 Jul 2010 16:33:51 -0400
+
+cloud-init (0.5.12-0ubuntu6) maverick; urgency=low
+
+  * fix installation error
+  * add quilt-setup rule for package development 
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 13 Jul 2010 12:04:21 -0400
+
+cloud-init (0.5.12-0ubuntu5) maverick; urgency=low
+
+  * sync with upstream r226.
+  * fix bug where nfs/network mounts could not be specified (LP: #603329)
+  * manage hostname setting better (LP: #596993)
+  * add legacy-grub-ec2 package.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 08 Jul 2010 22:24:59 -0400
+
+cloud-init (0.5.12-0ubuntu4) maverick; urgency=low
+
+  * handle hostname managing better with ebs root. (LP: #596993)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 07 Jul 2010 11:54:10 -0400
+
+cloud-init (0.5.12-0ubuntu3) maverick; urgency=low
+
+  * fix cloud-boothook input type (LP: #600799)
+  * sync with upstream.
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 01 Jul 2010 21:19:13 -0400
+
+cloud-init (0.5.12-0ubuntu2) maverick; urgency=low
+
+  * fix cloud config 'apt-update-upgrade' failure due to missing import
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 21 Jun 2010 15:08:32 -0400
+
+cloud-init (0.5.12-0ubuntu1) maverick; urgency=low
+
+  * New upstream release.
+  * fix cloud-init-run-module to allow 'always' (LP: #568139)
+  * add support for setting debconf selections 
+  * add cloud-config support for debconf selections (LP: #582667),
+    byobu enablement, and ssh-import-lp-id
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 18 Jun 2010 15:48:14 -0400
+
+cloud-init (0.5.11-0ubuntu2) maverick; urgency=low
+
+  * handle renaming sem/markers for config items to avoid
+    running per-instance again after package upgrade
+  * pull 'config-' prefix on sem/ items for cloud-config modules from
+    0.5.12
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 18 Jun 2010 12:52:10 -0400
+
+cloud-init (0.5.11-0ubuntu1) maverick; urgency=low
+
+  * New upstream release.
+  * remove ec2-get-info.  It is replaced by cloudutils ec2metadata
+  * use python logging
+  * reduce number of upstart jobs
+  * add "boothook" user data type
+  * Switch to dpkg-source 3.0 (quilt) format
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 18 Jun 2010 01:04:58 -0400
+
+cloud-init (0.5.10-0ubuntu1) lucid; urgency=low
+
+  * New upstream release.
+  * ec2-get-info: fix for python traceback
+  * ephemeral mount will show up in /etc/mtab or df on first boot
+    LP: #527825
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 26 Mar 2010 00:57:28 -0400
+
+cloud-init (0.5.9-0ubuntu1) lucid; urgency=low
+
+  * New upstream release.
+  * rename apt list files. 'ubuntu-bug' now works without update (LP: #513060)
+  * replace 'cloudconfig' entries in fstab rather than appending (LP: #524562)
+  * fix to fstab writing on ebs-root instances
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 08 Mar 2010 13:07:02 -0500
+
+cloud-init (0.5.8-0ubuntu1) lucid; urgency=low
+
+  * New upstream release.
+  * cache data from metadata service, LP: #527364
+  * fix format of cron entry in cron.d/cloudinit-updates
+  * package egg-info file
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 02 Mar 2010 15:48:04 -0500
+
+cloud-init (0.5.7-0ubuntu4) lucid; urgency=low
+
+  * fix empty package previous package was emptpy for cloud-init
+    due to adding the ec2-init package
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 26 Feb 2010 17:06:05 -0500
+
+cloud-init (0.5.7-0ubuntu3) lucid; urgency=low
+
+  * debian/control:
+    - recommend ssh-import, such that the ssh-import-lp-id
+      utility is available in UEC images for convenient importing of
+      ssh public keys stored in Launchpad, LP: #524101
+    - build a transitional ec2-init package to handle the rename
+      gracefully on upgrades, LP: #527187
+
+ -- Dustin Kirkland <kirkland@xxxxxxxxxx>  Thu, 25 Feb 2010 16:22:10 -0600
+
+cloud-init (0.5.7-0ubuntu2) lucid; urgency=low
+
+  * fix packaging but that put the message-of-the-day hook file
+    into a subdir of etc/update-motd.d, remove old file (LP: #524999)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 19 Feb 2010 21:02:10 -0500
+
+cloud-init (0.5.7-0ubuntu1) lucid; urgency=low
+
+  * New upstream release.
+  * run cloud-init early in boot process (LP: #504883, #524516)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 19 Feb 2010 18:27:45 -0500
+
+cloud-init (0.5.6-0ubuntu1) lucid; urgency=low
+
+  * New upstream release.
+  * supports 'runcmd' in cloud-config
+  * enable the update check code (LP: #524258)
+  * fix retry_url in boto_utils.py when metadata service not around
+    (LP: #523832)
+  * run cloud-config-puppet.conf later (LP: #523625)
+  [ Scott Moser 0.5.5 ]
+  * New upstream release, supports checking for updates
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 19 Feb 2010 03:13:22 -0500
+
+cloud-init (0.5.4-0ubuntu1) lucid; urgency=low
+
+  * New upstream release.
+  * fix broken user-data scripts
+  * merge mathiaz work for cloud-config-puppet
+  * fix bug causing apt update to fail
+  * rename EC2Init class to CloudInit
+  * only set hostname once per instance. (LP: #514492)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 17 Feb 2010 09:40:30 -0500
+
+cloud-init (0.5.3-0ubuntu2) lucid; urgency=low
+
+  * divert ureadahead.conf in postinst (LP: #499520)
+  * lintian cleanups
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 05 Feb 2010 15:48:21 -0500
+
+cloud-init (0.5.3-0ubuntu1) lucid; urgency=low
+
+  * Rename ec2-init to cloud-init.  New upstream release.
+  * set hostname to ip-u.x.y.z if local-hostname provides a ip addr
+    (LP: #475354)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 04 Feb 2010 03:00:05 -0500
+
+ec2-init (0.5.2-0ubuntu1) lucid; urgency=low
+
+  * new upstream release
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 29 Jan 2010 13:30:52 -0500
+
+ec2-init (0.5.1-0ubuntu1) lucid; urgency=low
+
+  * new upstream release
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 22 Jan 2010 16:19:30 -0500
+
+ec2-init (0.5.0-0ubuntu4) lucid; urgency=low
+
+  * add an upstart job to get ssh keys regenerated and written
+    to console (LP: #506599, LP: #507070)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 14 Jan 2010 13:10:55 -0500
+
+ec2-init (0.5.0-0ubuntu3) lucid; urgency=low
+
+  * work around difference in uec/ec2 metadata service (LP:506332)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 12 Jan 2010 11:33:11 -0500
+
+ec2-init (0.5.0-0ubuntu2) lucid; urgency=low
+
+  * pull changes from devel branch to get functional on ec2
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 11 Jan 2010 12:03:45 -0500
+
+ec2-init (0.5.0-0ubuntu2) lucid; urgency=low
+
+  * new upstream release
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 07 Jan 2010 22:00:38 -0500
+
+ec2-init (0.4.999-0ubuntu8) lucid; urgency=low
+
+  * fix mirror selection for us-west-1 (LP: #494185)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 11 Dec 2009 15:12:19 -0500
+
+ec2-init (0.4.999-0ubuntu7) karmic; urgency=low
+
+  * work around differences in eucalyptus ephemeral mounts (LP: #458850)
+  * get 'ec2:' prefix on ssh public key fingerprint (LP: #458576)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Mon, 26 Oct 2009 16:18:06 -0400
+
+ec2-init (0.4.999-0ubuntu6) karmic; urgency=low
+
+  * make sources.list components for 'karmic-security' the same as
+    'karmic' and 'karmic-updates' (main, restricted) (LP: #457866)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 22 Oct 2009 08:55:58 -0400
+
+ec2-init (0.4.999-0ubuntu5) karmic; urgency=low
+
+  * write regenerate_ssh_host_keys output directly to /dev/console
+    to ensure that it gets there. (LP: #451881)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Wed, 21 Oct 2009 17:23:38 -0400
+
+ec2-init (0.4.999-0ubuntu4) karmic; urgency=low
+
+  * set locale to en_US.UTF-8 if get_location_from_availability_zone 
+    doesn't have a match (LP: #407949)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 20 Oct 2009 09:57:49 -0400
+
+ec2-init (0.4.999-0ubuntu3) karmic; urgency=low
+
+  * split running of user-data out of ec2-init into ec2-init-user-data
+    run this at S99. (LP : #431255)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 25 Sep 2009 14:17:17 -0400
+
+ec2-init (0.4.999-0ubuntu2) karmic; urgency=low
+
+  * remove rightscale-init from package (see LP: #434181, LP: #434693)
+  * fix lintian warning, specify path to GPL-3
+  * replace multiple '| logger' in regenerate_ssh_host_keys single one
+  * add ec2-is-compat-env, and disable init script by default.  it can be
+    enabled by setting 'compat=1' in /etc/ec2-init/is-compat-env
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 24 Sep 2009 16:32:42 -0400
+
+ec2-init (0.4.999-0ubuntu1) karmic; urgency=low
+
+  * New upstream release
+
+ -- Soren Hansen <soren@xxxxxxxxxx>  Wed, 26 Aug 2009 01:23:52 +0200
+
+ec2-init (0.4.99-0ubuntu3) karmic; urgency=low
+
+  * Also update /etc/default/locale when setting the locale based on
+    locality.
+
+ -- Soren Hansen <soren@xxxxxxxxxx>  Tue, 11 Aug 2009 21:49:33 +0200
+
+ec2-init (0.4.99-0ubuntu2) karmic; urgency=low
+
+  * Consolidate build-dependencies a bit.
+  * Sync default configuration with code.
+  * Create /var/lib/ec2 in package.
+  * Make ec2-get-info more robust in testing environments.
+  * Handle missing public keys more gracefully.
+  * Set proper ownership of user's authorized_keys.
+
+ -- Soren Hansen <soren@xxxxxxxxxx>  Tue, 11 Aug 2009 09:54:16 +0200
+
+ec2-init (0.4.99-0ubuntu1) karmic; urgency=low
+
+  * Massive rewrite. (LP: #407871, #407919, #308530, #407949, #407950, #407892
+    and probably many others)
+  * First Ubuntu version with the upstream tarball split out.
+  * Switch to arch: all. There is no arch specific code here.
+
+ -- Soren Hansen <soren@xxxxxxxxxx>  Tue, 11 Aug 2009 08:33:33 +0200
+
+ec2-init (0.3.4ubuntu9) karmic; urgency=low
+
+  * Really include the action id in the semaphore filename.
+
+ -- Soren Hansen <soren@xxxxxxxxxx>  Sat, 11 Jul 2009 09:50:31 +0200
+
+ec2-init (0.3.4ubuntu8) karmic; urgency=low
+
+  * Add Vcs-Bzr header to debian/control.
+  * Include the action id in the semaphore filename.
+
+ -- Soren Hansen <soren@xxxxxxxxxx>  Sat, 11 Jul 2009 02:35:43 +0200
+
+ec2-init (0.3.4ubuntu7) karmic; urgency=low
+
+  * Re-add accidentally removed locale template.
+  * Fix indentation in init script.
+
+ -- Soren Hansen <soren@xxxxxxxxxx>  Fri, 10 Jul 2009 23:47:27 +0200
+
+ec2-init (0.3.4ubuntu6) karmic; urgency=low
+
+  * Replace calls to ec2-get-data with calls to ec2-get-info.
+  * Make this package arch: all.
+
+ -- Soren Hansen <soren@xxxxxxxxxx>  Fri, 10 Jul 2009 23:16:35 +0200
+
+ec2-init (0.3.4ubuntu5) karmic; urgency=low
+
+  * debian/init: Move instance reboot detection out of python 
+    scripts and move them to the init script.
+  * debian/ec2-set-defaults.py: 
+    - Point to the right location for locate (LP: #387611)
+    - Default to UTC (LP: #341060)
+  * debian/ec2-set-apt-sources.py: If you cant contact EC2 then use the
+    regular archive (LP: #387027)
+  * debian/ec2-setup-hostname.py: Use the local hostname in /etc/hosts
+    and dont change once rebooted. (LP: #352745)
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Wed, 08 Jul 2009 09:48:49 -0400
+
+ec2-init (0.3.4ubuntu4) karmic; urgency=low
+
+  * debian/init: Run update-motd regardless whether its a firstboot or not.
+  * debian/init: Fix comments (LP: #373057)
+  * debian/control: Add update-motd as a depends.
+  * ec2-set-defaults.py: Wait for network to become available. (LP: #308530)
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Thu, 28 May 2009 05:04:31 -0400
+
+ec2-init (0.3.4ubuntu3) karmic; urgency=low
+
+  * debian/init: Move init script to run before ssh and regenerate the ssh
+    host kes in the init script rather than /etc/rc.local (LP: #370628)
+  * ec2-set-apt-sources.py: 
+    - Move sources.list to /var/ec2 so it doesnt get removed after user
+    reboots.
+  * ec2-set-defaults.py:
+    - Move locale to /var/ec2/ so it doesnt get remove after user reboots.
+  * ec2-set-hostname.py
+    - Create an /etc/hostname as well.
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Thu, 14 May 2009 11:11:49 -0400
+
+ec2-init (0.3.4ubuntu2) karmic; urgency=low
+
+  * Really change the locale when setting up an instance. (LP: #341066) 
+  * Run ec2-run-user-data script last. (LP: #373055)
+  * Minor comment tweaks. (LP: #373057)
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Wed, 13 May 2009 13:41:35 -0400
+
+ec2-init (0.3.4ubuntu1) karmic; urgency=low
+
+  * Add more smarts to ec2 instance bring up. (LP: #371936)
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Tue, 05 May 2009 08:59:54 -0400
+
+ec2-init (0.3.3ubuntu12) jaunty; urgency=low
+
+  * ec2-run-user-data.py: Fix error. 
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Tue, 07 Apr 2009 08:14:07 -0400
+
+ec2-init (0.3.3ubuntu11) jaunty; urgency=low
+
+  * debian/control:
+    - Add python-cheetah and python-apt as a dependency.
+  * debian/ec2-config.cfg:
+    - Remove distro due to the change in ec2-set-apt-sources.py
+  * debian/inistall
+    - Install the templates in the right place.
+  * ec2-set-apt-sources.py:
+    - Use python-apt to update the sources.list.
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Wed, 01 Apr 2009 13:58:43 -0400
+
+ec2-init (0.3.3ubuntu10) jaunty; urgency=low
+
+  * ec2-set-hostname.py:
+    - Use template for /etc/hosts creation.
+    - Dont use public_hostname in /etc/hosts. (LP: #352745) 
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Wed, 01 Apr 2009 08:48:05 -0400
+
+ec2-init (0.3.3ubuntu9) jaunty; urgency=low
+
+  * ec2-set-apt-sources.py:
+    - Use a template to generate the sources.list and generate it based on the lsb_release. 
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Tue, 31 Mar 2009 15:15:55 -0400
+
+ec2-init (0.3.3ubuntu8) jaunty; urgency=low
+
+  * ec2-set-apt-sources.py:
+    - Add the ubuntu-on-ec2 ppa. 
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Tue, 31 Mar 2009 09:37:13 -0400
+
+ec2-init (0.3.3ubuntu7) jaunty; urgency=low
+
+  * debian/rules: Fix typo. 
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Sun, 22 Mar 2009 17:14:16 -0400
+
+ec2-init (0.3.3ubuntu6) jaunty; urgency=low
+
+  * Set the configuration file to jaunty.
+  * ec2-fetch-credentials: Fix typo.
+  * ec2-set-defaults.py: 
+    - Remove timezone change when booting the instance.
+    - Redirect output to /dev/null.
+  * ec2-set-apt-sources.py:
+    - Run apt-get update after the /etc/apt/sources.list and
+      redirect the output to /dev/null.
+  * rightscale-init: Updated rightscale-init
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Thu, 19 Mar 2009 20:52:59 -0400
+
+ec2-init (0.3.3ubuntu5) jaunty; urgency=low
+
+  * debian/ec2-config.cfg:
+    - Add disable root option.
+  * debian/ec2-init.rightscale-init.init:
+    - Add rightscale detection script.
+  * ec2-get-info.py:
+    - Display the information about an AMI instance.
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Mon, 16 Mar 2009 08:54:49 -0400
+
+ec2-init (0.3.3ubuntu4) jaunty; urgency=low
+
+  * ec2-fetch-credentials.py:
+    - Allow user to choose which user they wish to configure for.
+    - Allow user to disable root user if they wish to.
+  * ec2-set-defaults.py:
+    - Set default timezone to UTC.
+    - Set locale depending on zone.
+  * debian/init:
+    - Removed nash plugin.
+    - Add ec2-set-defaults.
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Wed, 04 Mar 2009 08:33:01 -0500
+
+ec2-init (0.3.3ubuntu3~intrepid4) intrepid; urgency=low
+
+  * set distro to intrepid.
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Thu, 26 Feb 2009 10:28:06 -0500
+
+ec2-init (0.3.3ubuntu3) jaunty; urgency=low
+
+  * debian/ec2-init: Log results of ec2-run-user-data to syslog.
+  * ec2-run-user-data.py :Dont leave files around and log the 
+    output to syslog. 
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Thu, 26 Feb 2009 10:24:35 -0500
+
+ec2-init (0.3.3ubuntu2) jaunty; urgency=low
+
+  * ec2-set-apt-sources.py:
+    - Use the ec2 mirrors. (LP: #317065, #333897)
+    - Update the /etc/apt/sources.list (LP: #333904)
+  * ec2-fetch-credentials.py:
+    - Better error checking (LP: #325067)
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Tue, 24 Feb 2009 14:02:37 -0500
+
+ec2-init (0.3.3ubuntu1) jaunty; urgency=low
+
+  * debian/init: Fix init script. 
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Fri, 20 Feb 2009 09:22:54 -0500
+
+ec2-init (0.3.3) jaunty; urgency=low
+
+  * ec2-set-apt-sources.py
+    - Determine the zone that the user is in and generate
+      a /etc/apt/sources.list.d/ based on that.
+  * debian/init:
+    - Check to see if there is an /var/run/ec2 and create
+      it if it doesnt exist.
+    - Start ec2-set-apt-sources at first bootup.
+  * debian/rules:
+    - Install ec2-set-apt-sources.
+  * debian/control:
+    - Add python-configobj as a dependency.
+  * debian/{install,dirs}
+    - Create an /etc/ec2-init to read the configuration file and install it.
+  
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Mon, 09 Feb 2009 10:35:56 -0500
+
+ec2-init (0.3.2) jaunty; urgency=low
+
+  * debian/init:
+    - Remove already ran detection
+    - Log the running of ec2-run-user-data to /var/log/ec2-user-data.log
+  * ec2-set-hostname.py:
+    - set hostname to the Ec2 local-hostname
+    - Update the /etc/hosts to change the ubuntu hostname to the
+      public hostname.
+  * ec2-fetch-credentials:
+    - Copy the ssh keys to the ubuntu user.
+    - Setup authorized keys for root to tell the user to login as the 
+      ubuntu user when they try to connect.
+  * ec2-run-user-data:
+    - Create an .already-ran file to check to see if ec2-run-user-data
+      already ran.
+    - Save the ec2-run-user-data script in /var/ec2.
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Wed, 04 Feb 2009 09:32:08 -0500
+
+ec2-init (0.3.1) jaunty; urgency=low
+
+  * debian/dir: Install /var/ec2 to save user-data scripts.
+  * debian/rules: Start ec2-init after ssh.
+  * ec2-run-user-data.py: Save run-user-data script with ami-id.
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Mon, 26 Jan 2009 10:40:52 -0500
+
+ec2-init (0.3) jaunty; urgency=low
+
+  * ec2-run-user-data: Fix python error when writing a file to the disk. 
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Thu, 15 Jan 2009 11:49:08 -0500
+
+ec2-init (0.2) jaunty; urgency=low
+
+  * debian/init: Run fetch-credentials before anything else.
+    (LP: #308533)
+  * Add ec2-set-hostname.py: Queries ec2 metdada for public-hostname
+    and then sets it (LP: #316201)
+
+ -- Chuck Short <zulcss@xxxxxxxxxx>  Tue, 13 Jan 2009 15:20:21 -0500
+
+ec2-init (0.1) intrepid; urgency=low
+
+  * Initial release (LP: #269434).
+
+ -- Soren Hansen <soren@xxxxxxxxxx>  Fri, 12 Sep 2008 15:30:32 +0200
+
diff --git a/debian/cherry-pick b/debian/cherry-pick
new file mode 100755
index 0000000..dd55724
--- /dev/null
+++ b/debian/cherry-pick
@@ -0,0 +1,197 @@
+#!/bin/bash
+
+VERBOSITY=0
+TEMP_D=""
+CR=$'\n'
+
+error() { echo "$@" 1>&2; }
+fail() { [ $# -eq 0 ] || error "$@"; exit 1; }
+
+Usage() {
+    cat <<EOF
+Usage: ${0##*/} [ options ] <<ARGUMENTS>>
+
+   Cherry pick a patch into debian/patches.
+   Useful to grab an upstream commit to the current packaging branch.
+
+   options:
+      -h | --help  show help
+EOF
+}
+
+bad_Usage() { Usage 1>&2; [ $# -eq 0 ] || error "$@"; return 1; }
+cleanup() {
+    [ -z "${TEMP_D}" -o ! -d "${TEMP_D}" ] || rm -Rf "${TEMP_D}"
+}
+
+debug() {
+    local level=${1}; shift;
+    [ "${level}" -gt "${VERBOSITY}" ] && return
+    error "${@}"
+}
+
+shorten() {
+    local name="$1" len="70"
+    while [ "${#name}" -gt "$len" ]; do
+        name="${name%-*}"
+    done
+    _RET="$name"
+}
+
+print_commit() {
+    local subject="$1" author="$2" bugs="$3" aname=""
+    aname=${author% <*}
+    echo "$subject${bugs:+ (LP: ${bugs})}"
+}
+
+print_bugs() {
+    local subject="$1" author="$2" bugs="$3" aname=""
+    echo "$bugs"
+}
+
+git_log_to_dch() {
+    # call printer with subject, author and bugs as extracted
+    # from either git format-patch output or git show output.
+    local line="" commit="" lcommit="" bugs=""
+    local printer="${1:-print_commit}"
+    while :; do
+        read line || break
+        case "$line" in
+            commit\ *|From\ *)
+                if [ -n "$commit" ]; then
+                    "$printer" "$subject" "$author" "$bugs"
+                fi
+                commit=${line#* }
+                commit=${commit%% *}
+                bugs=""
+                author=""
+                subject=""
+                ;;
+            Author:\ *|From:\ *) author="${line#*: }";;
+            LP:*) bugs="${bugs:+${bugs}, }${line#*: }";;
+            "") [ -z "$subject" ] && read subject;;
+            Subject:\ *)
+                subject="${line#Subject: }"
+                subject="${subject#\[PATCH\] }"
+                ;;
+        esac
+    done
+    if [ -n "$commit" ]; then
+        "$printer" "$subject" "$author" "$bugs"
+    fi
+}
+
+main() {
+    local short_opts="ho:v"
+    local long_opts="help,verbose"
+    local getopt_out=""
+    getopt_out=$(getopt --name "${0##*/}" \
+        --options "${short_opts}" --long "${long_opts}" -- "$@") &&
+        eval set -- "${getopt_out}" ||
+        { bad_Usage; return; }
+
+    local cur="" next=""
+
+    while [ $# -ne 0 ]; do
+        cur="$1"; next="$2";
+        case "$cur" in
+            -h|--help) Usage ; exit 0;;
+            -v|--verbose) VERBOSITY=$((${VERBOSITY}+1));;
+            --) shift; break;;
+        esac
+        shift;
+    done
+
+	[ -n "$TEMP_D" ] ||
+        TEMP_D=$(mktemp -d "${TMPDIR:-/tmp}/${0##*/}.XXXXXX") ||
+		{ error "failed to make tempdir"; return 1; }
+	trap cleanup EXIT
+
+    [ $# -gt 0 ] || { bad_Usage "must provide commit-ish"; return; }
+
+    local r="" commit_in="$1" chash="" shash="" sname="" fname="" cur_br=""
+    cur_br=$(git rev-parse --abbrev-ref HEAD) ||
+        { error "failed to get current branch"; return 1; }
+    chash=$(git show --quiet "--pretty=format:%H" "${commit_in}") ||
+        { error "failed git show $commit_in"; return 1; }
+
+    if git merge-base --is-ancestor "$chash" HEAD; then
+        error "current branch '$cur_br' already contains $commit_in ($chash)"
+        return 1
+    fi
+
+    out=$(git show --quiet "--pretty=format:%h %f" "$chash") ||
+        { error "failed git show $chash"; return 1; }
+
+    shash=${out% *}
+    sname=${out#* }
+    longname="cpick-$shash-$sname"
+    shorten "$longname"
+    fname="$_RET"
+
+    [ -d debian/patches ] || mkdir -p debian/patches ||
+        { error "failed to make debian/patches"; return 1; }
+
+    local series="debian/patches/series" fpath="debian/patches/$fname"
+    if [ -e "$series" ] && out=$(grep -- "-${shash}-" "$series"); then
+        error "$chash already exists in $series"
+        error "  $out"
+        return 1
+    fi
+
+    if [ -e "$series" ]; then
+        if out=$(quilt applied 2>&1); then
+            error "there are quilt patches applied!"
+            error "$out"
+            return 1
+        fi
+    fi
+
+    git format-patch --stdout -1 "$chash" > "$fpath" ||
+        { error "failed git format-patch -1 $chash > $fpath"; return 1; }
+
+    echo "$fname" >> "$series" ||
+        { error "failed to write to $series"; return 1; }
+
+    quilt push "$fname" ||
+        { error "patches do not cleanly apply"; return 1; }
+    quilt refresh && quilt pop -a ||
+        { error "failed to refresh or pop quilt"; return 1; }
+
+    local message=""
+    message=$(git_log_to_dch < "$fpath") ||
+        { error "failed getting log entry from $fpath"; return 1; }
+    dch -i "cherry-pick $shash: $message"
+
+    dch -e || {
+        r=$?;
+        error "dch -e exited $r";
+        return $r;
+    }
+
+    local commit_files=""
+    commit_files=( "$series" "$fpath" )
+    git diff HEAD "${commit_files[@]}"
+
+    echo -n "Commit this change? (Y/n): "
+    read answer || fail "failed to read answer"
+    case "$answer" in
+        n|[Nn][oO]) exit 1;;
+    esac
+
+    bugs=$(git_log_to_dch print_bugs < "$fpath")
+    msg="cherry pick $shash${bugs:+${CR}${CR}LP: ${bugs}}"
+    git add "$series" "$fpath" ||
+        { error "failed to git add $series $fpath"; return 1; }
+
+    git commit -m "$msg" "${commit_files[@]}" ||
+        fail "failed to commit '$msg'"
+
+    git commit -m "update changelog" debian/changelog ||
+        fail "failed to commit update to debian changelog."
+
+    return 0
+}
+
+main "$@"
+# vi: ts=4 expandtab
diff --git a/debian/cloud-init.config b/debian/cloud-init.config
new file mode 100644
index 0000000..6e9c6f7
--- /dev/null
+++ b/debian/cloud-init.config
@@ -0,0 +1,78 @@
+#!/bin/sh -e
+
+. /usr/share/debconf/confmodule
+
+hasEc2Md() {
+	local d=/var/lib/cloud i=/var/lib/cloud/instance/ f=""
+	local flist="${i}/datasource ${i}/obj.pkl ${d}/cache/obj.pkl"
+	# search current instance data source information
+	for f in ${flist}; do
+		[ -f "${f}" ] || continue
+		grep -q DataSourceEc2 "${f}" 2>/dev/null && return 0
+	done
+
+
+	# there was no data above found that would have been indicated
+	# by a upgrade. lets just see if we can't find the metadata
+	# service.  if wget is not present (it is not 'essential')
+	# then we will quietly return 1
+	local url="http://169.254.169.254/2009-04-04/meta-data/instance-id";
+	i=""
+	if command -v wget >/dev/null 2>&1; then
+		local tout="--connect-timeout 5 --read-timeout 5 --tries 1" 
+		i=$(wget "${url}" ${tout} -O - 2>/dev/null) || :
+	elif command -v curl >/dev/null 2>&1; then
+		i=$(curl "${url}" --max-time 1) || :
+	fi
+	# if instance-id starts with 'i-' then in all likelyhood its good
+	[ "${i#i-}" != "${i}" ] && return 0
+	return 1
+}
+
+get_yaml_list() {
+	# get_yaml_list(file, key, def): return a comma delimited list with the value
+	# for the yaml array defined in 'key' from 'file'. if not found , return 'def'
+	# only really supports 'key: [en1, en2 ]' format.
+	local file="$1" key="$2" default="$3"
+	[ -f "$file" ] || return 1
+	# any thing that didn't match the key is deleted so the final 'p' only
+	# prints things that matched.
+	RET=$(sed -n -e "/^$key:/"'!'d -e "s/$key:[ \[]*//"\
+		-e "s, \]$,," -e p "$file")
+	[ -n "$RET" ] || RET="$default"
+}
+
+# old_dpkg_cfg is very old file that is no longer read by cloud-init.
+# it gets re-named to cloud.cfg.d/90_dpkg.cfg in the preinst.
+dpkg_cfg="/etc/cloud/cloud.cfg.d/90_dpkg.cfg"
+old_dpkg_cfg="/etc/cloud/distro.cfg"
+if [ -f "${old_dpkg_cfg}" -a ! -f "$dpkg_cfg" ]; then
+	dpkg_cfg="${old_dpkg_cfg}"
+   echo "WARN: reading value from ${old_dpkg_cfg}" 1>&2
+fi
+if [ -f "$dpkg_cfg" ]; then
+	if get_yaml_list "$dpkg_cfg" datasource_list NOTFOUND &&
+		val="$RET" && [ "$val" != "NOTFOUND" ]; then
+		db_set cloud-init/datasources $val
+	else
+		echo "WARN: failed to read datasource_list from $dpkg_cfg" 1>&2
+	fi
+elif { db_fget cloud-init/datasources seen || : ; } &&
+		[ "${RET}" = "false" ]; then
+	# this is the first time this we've run (installation or re-install after
+	# purge). try to determine if the Ec2 datasource is there.
+	# if it is, and Ec2 was not in the default list, then add it.
+	db_get cloud-init/datasources
+	def="${RET}"
+	case " ${def}," in
+		*\ Ec2,*) :;;
+		*) hasEc2Md &&
+			db_set cloud-init/datasources "${def:+${def}, }Ec2";;
+	esac
+fi
+
+db_input low cloud-init/datasources || true
+db_go
+
+exit 0
+# vi: ts=4 noexpandtab
diff --git a/debian/cloud-init.maintscript b/debian/cloud-init.maintscript
new file mode 100644
index 0000000..93aff81
--- /dev/null
+++ b/debian/cloud-init.maintscript
@@ -0,0 +1,8 @@
+rm_conffile /etc/init/cloud-config.conf 0.7.9-243-ge74d775-0ubuntu2~
+rm_conffile /etc/init/cloud-final.conf 0.7.9-243-ge74d775-0ubuntu2~
+rm_conffile /etc/init/cloud-init-blocknet.conf 0.7.9-243-ge74d775-0ubuntu2~
+rm_conffile /etc/init/cloud-init-container.conf 0.7.9-243-ge74d775-0ubuntu2~
+rm_conffile /etc/init/cloud-init-local.conf 0.7.9-243-ge74d775-0ubuntu2~
+rm_conffile /etc/init/cloud-init-nonet.conf 0.7.9-243-ge74d775-0ubuntu2~
+rm_conffile /etc/init/cloud-init.conf 0.7.9-243-ge74d775-0ubuntu2~
+rm_conffile /etc/init/cloud-log-shutdown.conf 0.7.9-243-ge74d775-0ubuntu2~
diff --git a/debian/cloud-init.postinst b/debian/cloud-init.postinst
new file mode 100644
index 0000000..f88d1c5
--- /dev/null
+++ b/debian/cloud-init.postinst
@@ -0,0 +1,336 @@
+#!/bin/sh -e
+
+. /usr/share/debconf/confmodule
+
+set -f # disable pathname expansion
+db_capb escape # to support carriage return / multi-line values
+
+debug() {
+   [ "${_CI_UPGRADE_DEBUG:-0}" = "0" ] && return 0
+   echo "$@" 1>&2 || :
+}
+
+update_cfg() {
+   # takes filename, header, new object (in yaml), optionally 'remover'
+   # and merges new into existing object in filename, and then updates file
+   # remover a string that means "delete existing entry"
+   python3 -c '
+import sys, yaml
+
+def update(src, cand):
+    if not (isinstance(src, dict) and isinstance(cand, dict)):
+        return cand
+    for k, v in cand.items():
+        # if the candidate has _ as value, delete source
+        if v == REMOVER:
+            if k in src:
+                del src[k]
+            continue
+        if k not in src:
+            src[k] = v
+        else:
+            src[k] = update(src[k], v)
+    return src
+
+(fname, header, newyaml) = sys.argv[1:4]
+REMOVER = object
+if len(sys.argv) == 5:
+   REMOVER = sys.argv[4]
+newcfg = yaml.load(newyaml)
+
+with open(fname, "r") as fp:
+    cfg = yaml.load(fp)
+if not cfg: cfg = {}
+
+cfg = update(cfg, newcfg)
+
+with open(fname, "w") as fp:
+    fp.write(header + "\n")
+    fp.write(yaml.dump(cfg))' "$@"
+}
+
+handle_preseed_maas() {
+   local cfg_file="/etc/cloud/cloud.cfg.d/90_dpkg_maas.cfg"
+   local md_url="" creds_all="" c_key="" t_key="" t_sec="" c_sec="";
+
+   db_get "cloud-init/maas-metadata-url" && md_url="$RET" || :
+   db_get "cloud-init/maas-metadata-credentials" && creds_all="$RET" || :
+
+   # nothing to do
+   [ -n "$md_url" -o -n "$creds_all" ] || return 0
+
+   # change a url query string format into : delimited
+   if [ -n "$creds_all" -a "${creds_all#*&}" != "${creds_all}" ]; then
+      # the command here ends up looking like:
+      # python3 -c '...' 'oauth_consumer_key=v1&oauth_token_key=v2...' \
+      #   oauth_consumer_key oauth_token_key oauth_token_secret
+      creds_all=$(python3 -c 'from six.moves.urllib.parse import parse_qs;
+import sys;
+keys = parse_qs(sys.argv[1])
+for k in sys.argv[2:]:
+   sys.stdout.write("%s:" % keys.get(k,[""])[0])' "$creds_all" \
+   oauth_consumer_key oauth_token_key oauth_token_secret
+)
+   fi
+
+   # now, if non-empty creds_all is: consumer_key:token_key:token_secret
+   if [ -n "$creds_all" ]; then
+      OIFS="$IFS"; IFS=:; set -- $creds_all; IFS="$OIFS"
+      c_key=$1; t_key=$2; t_sec=$3
+   fi
+
+   if [ "$md_url" = "_" -a "${c_key}:${t_key}:${t_sec}" = "_:_:_" ]; then
+      # if all these values were '_', the delete value, just delete the file.
+      rm -f "$cfg_file"
+   else
+      local header="# written by cloud-init debian package per preseed entries
+# cloud-init/{maas-metadata-url,/maas-metadata-credentials}"
+
+      local pair="" k="" v="" pload="" orig_umask=""
+      for pair in "metadata_url:$md_url" "consumer_key:${c_key}" \
+         "token_key:${t_key}" "token_secret:$t_sec"; do
+         k=${pair%%:*}
+         v=${pair#${k}:}
+         [ -n "$v" ] && pload="${pload} $k: \"$v\","
+      done
+
+      # '_' would indicate "delete", otherwise, existing entries are left
+      orig_umask=$(umask)
+      umask 066
+      : >> "$cfg_file" && chmod 600 "$cfg_file"
+      update_cfg "$cfg_file" "$header" "datasource: { MAAS: { ${pload%,} } }" _
+      umask ${orig_umask}
+   fi
+
+   # now clear the database of the values, as they've been consumed
+   db_unregister "cloud-init/maas-metadata-url" || :
+   db_unregister "cloud-init/maas-metadata-credentials" || :
+}
+
+handle_preseed_local_cloud_config() {
+   local ccfg="" debconf_name="cloud-init/local-cloud-config"
+   local cfg_file="/etc/cloud/cloud.cfg.d/90_dpkg_local_cloud_config.cfg"
+   local header="# written by cloud-init debian package per preseed entry
+# $debconf_name"
+
+   db_get "${debconf_name}" && ccfg="$RET" || :
+
+   if [ "$ccfg" = "_" ]; then
+      rm -f "$cfg_file"
+   elif [ -n "$ccfg" ]; then
+      { echo "$header"; echo "$ccfg"; } > "$cfg_file"
+   fi
+   db_unregister "${debconf_name}" || :
+}
+
+fix_1336855() {
+  ### Begin fix for LP: 1336855
+  # fix issue where cloud-init misidentifies the location of grub and
+  # where grub misidentifies the location of the device
+
+  # if cloud-init's grub module did not run, then it did not break anything.
+  [ -f /var/lib/cloud/instance/sem/config_grub_dpkg ] || return 0
+
+  # This bug only happened on /dev/xvda devices
+  [ -b /dev/xvda ] || return 0
+
+  # we can't fix the system without /proc/cmdline
+  [ -r /proc/cmdline ] || return 0
+
+  # Don't do anything unless we have grub
+  [ -x /usr/sbin/grub-install ] || return 0
+
+  # First, identify the kernel device for the parent.
+  for parm in $(cat /proc/cmdline); do
+       dev=$(echo $parm | awk -F\= '{print$NF}')
+       case $parm in
+           root=UUID*)  [ -d /dev/disk/by-uuid ] &&
+                            root_dev=$(readlink -f /dev/disk/by-uuid/$dev);;
+           root=LABEL*) [ -d /dev/disk/by-label ] &&
+                            root_dev=$(readlink -f /dev/disk/by-label/$dev);;
+           root=/dev*)  [ -d /dev ] &&
+                            root_dev=$(readlink -f $dev);;
+       esac
+       [ -n "$root_dev" ] && break
+  done
+
+  # Don't continue if we don't have a root directive
+  [ -z "$root_dev" ] && return 0
+
+  # Only deal with simple, cloud-based devices
+  case $root_dev in
+       /dev/vda*|/dev/xvda*|/dev/sda*) ;;
+       *) return 0;;
+  esac
+
+  # Make sure that we are not chrooted.
+  [ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ] && return 0
+
+  # Check if we are in a container, i.e. LXC
+  if systemd-detect-virt --quiet --container || lxc-is-container 2>/dev/null; then
+      return 0
+  fi
+
+  # Find out where grub thinks the root device is. Only continue if
+  # grub postinst would install/reinstall grub
+  db_get grub-pc/install_devices && grub_cfg_dev=${RET} || return 0
+  db_get grub-pc/install_devices_empty && grub_dev_empty=${RET} || return 0
+
+  # Find out the parent device for the root device.
+  #     example output: sda/sda1
+  block_path=$(udevadm info -q path -n $root_dev | awk '-Fblock/' '{print$NF}')
+
+  # Extract the parent device name. This works where the device is a block device
+  #     example output: /dev/sda
+  parent_dev=$(echo $block_path | awk '-F/' '$1 { if ( $1 ) {print"/dev/"$1}}')
+  [ -b "${parent_dev}" ] || return 0
+
+  # Do nothing if the device that the grub postinst would install is already used
+  [ "$grub_cfg_dev" = "$parent_dev" -o "$grub_cfg_dev" = "$root_dev" ] && return 0
+
+  # If we get here, do the installation
+  echo "Reconfiguring grub install device due to mismatch (LP: #1336855)"
+  echo "   Grub should use $parent_dev but is configured for $grub_cfg_dev"
+  db_set grub-pc/install_devices "$parent_dev"
+  grub-install $parent_dev &&
+     echo "Reinstalled grub" ||
+     echo "WARNING! Unable to fix grub device mismatch. You may be broken."
+
+}
+
+cleanup_lp1552999() {
+    local oldver="$1" last_bad_ver="0.7.7~bzr1178"
+    dpkg --compare-versions "$oldver" le "$last_bad_ver" || return 0
+    local edir="/etc/systemd/system/multi-user.target.wants"
+    rm -f "$edir/cloud-config.service" "$edir/cloud-final.service" \
+        "$edir/cloud-init-local.service" "$edir/cloud-init.service"
+}
+
+disable_network_config_on_upgrade() {
+    local oldver="$1" last_without_net="0.7.7~bzr1182-0ubuntu1"
+    if [ ! -f /var/lib/cloud/instance/obj.pkl ]; then
+        # this is a fresh system not one that has been booted.
+        return 0
+    fi
+    if dpkg --compare-versions "$oldver" le "$last_without_net"; then
+        echo "dpkg upgrade from $oldver" > /var/lib/cloud/data/upgraded-network
+    fi
+}
+
+fix_azure_upgrade_1611074() {
+    # adjust /etc/fstab on azure so boot after resize does not mount
+    # /mnt as ntfs and stop re-formatting.
+    local fixed_ver="0.7.8-49-1" dspath="/var/lib/cloud/instance/datasource"
+    local oldver="$1" tmpf="" r="" wmsg="" me="cloud-init postinst"
+
+    # if not on azure, or not booted with instance/ skip out.
+    if [ ! -e "$dspath" ]; then
+        debug "no $dspath"
+        return 0
+    fi
+    if ! grep -qi azure "$dspath"; then
+        debug "not on azure per $dspath"
+        return 0
+    fi
+
+    # if there is no /etc/fstab, then nothing to fix.
+    if [ ! -e /etc/fstab ]; then
+        debug "no /etc/fstab"
+        return 0
+    fi
+
+    if dpkg --compare-versions "$oldver" ge "$fixed_ver"; then
+        debug "previous version was fixed"
+        return 0
+    fi
+
+    wmsg="WARN: $me failed."
+    wmsg="$wmsg Subsequent resize may not update ephemeral correctly."
+    tmpf=$(mktemp "${TMPDIR:-/tmp}/cloud-init-upgrade.XXXXXX") || {
+        echo "$wmsg (mktemp failed with $?)" 1>&2
+        return 0;
+    }
+
+    awk '{
+        if ($4 !~ /x-systemd.requires/ && $4 ~ /comment=cloudconfig/) {
+            sub(/comment=cloudconfig/, "x-systemd.requires=cloud-init.service,comment=cloudconfig")
+        }
+        printf("%s\n", $0)}' /etc/fstab > "$tmpf" || {
+            echo "$wmsg (awk reading of /etc/fstab failed with $?)" 1>&2
+            rm -f "$tmpf"
+            return 0;
+        }
+    if cmp /etc/fstab "$tmpf" >/dev/null 2>&1; then
+        debug "no changes needed."
+    else
+        cat "$tmpf" > /etc/fstab || {
+            r=$?
+            echo "$wmsg (cp $tmpf /etc/fstab failed with $r)"
+            echo ==== expected to write the following to /etc/fstab =====
+            cat "$tmpf"
+            echo ========================================================
+            return $r
+        } 1>&2
+        echo "$me fixed /etc/fstab for x-systemd.requires" 1>&2
+    fi
+    rm "$tmpf" || :
+}
+
+cleanup_ureadahead() {
+    local oldver="$1" last_bad_ver="0.7.9-243-ge74d775-0ubuntu2~"
+    dpkg --compare-versions "$oldver" le "$last_bad_ver" || return 0
+    dpkg-divert --package cloud-init --remove --rename --divert \
+        /etc/init/ureadahead.conf.disabled /etc/init/ureadahead.conf
+}
+
+if [ "$1" = "configure" ]; then
+   if db_get cloud-init/datasources; then
+      values="$RET"
+      if [ "${values#*MaaS}" != "${values}" ]; then
+         # if db had old MAAS spelling, fix it.
+         values=$(echo "$values" | sed 's,MaaS,MAAS,g')
+         db_set cloud-init/datasources "$values"
+      fi
+      cat > /etc/cloud/cloud.cfg.d/90_dpkg.cfg <<EOF
+# to update this file, run dpkg-reconfigure cloud-init
+datasource_list: [ $values ]
+EOF
+   fi
+
+   # we want to affect apt_pipelining on install, not wait for
+   # cloud-init to run it on next boot.
+   pipeline_f="/etc/apt/apt.conf.d/90cloud-init-pipelining"
+   if [ -f /var/lib/cloud/instance/obj.pkl ]; then
+      cloud-init single --name apt-pipelining --frequency once >/dev/null 2>&1 ||
+         echo "Warning: failed to setup apt-pipelining" 1>&2
+   elif [ ! -f "$pipeline_f" ]; then
+      # there was no cloud available, so populate it ourselves.
+      cat > "$pipeline_f" <<EOF
+//Written by cloud-init per 'apt_pipelining'
+Acquire::http::Pipeline-Depth "0";
+EOF
+   fi
+
+   # if there are maas settings pre-seeded apply them
+   handle_preseed_maas
+
+   # if there is generic cloud-config preseed, apply them
+   handle_preseed_local_cloud_config
+
+   # fix issue where cloud-init misidentifies the location of grub
+   fix_1336855
+
+   # make upgrades disable network changes by cloud-init
+   disable_network_config_on_upgrade "$2"
+
+   fix_azure_upgrade_1611074 "$2"
+
+   cleanup_ureadahead "$2"
+fi
+
+#DEBHELPER#
+
+if [ "$1" = "configure" ]; then
+   oldver="$2"
+   cleanup_lp1552999 "$oldver"
+fi
diff --git a/debian/cloud-init.postrm b/debian/cloud-init.postrm
new file mode 100644
index 0000000..4e20db1
--- /dev/null
+++ b/debian/cloud-init.postrm
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+   purge)
+      rm -f /etc/cloud/cloud.cfg.d/90_dpkg.cfg
+      rm -f /etc/apt/apt.conf.d/90cloud-init-pipelining
+      ;;
+   remove)
+      rm -f /etc/cloud/cloud.cfg.d/90cloud-init-pipelining
+      ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/cloud-init.preinst b/debian/cloud-init.preinst
new file mode 100644
index 0000000..c8406e3
--- /dev/null
+++ b/debian/cloud-init.preinst
@@ -0,0 +1,254 @@
+#!/bin/sh
+set -e
+
+# Remove a no-longer used conffile
+rm_conffile() {
+	local PKGNAME="$1"
+	local CONFFILE="$2"
+
+	[ -e "$CONFFILE" ] || return 0
+
+	local md5sum="$(md5sum $CONFFILE | sed -e 's/ .*//')"
+	local old_md5sum="$(dpkg-query -W -f='${Conffiles}' $PKGNAME | \
+			sed -n -e "\' $CONFFILE ' { s/ obsolete$//; s/.* //; p }")"
+	if [ "$md5sum" != "$old_md5sum" ]; then
+		echo "Obsolete conffile $CONFFILE has been modified by you."
+		echo "Saving as $CONFFILE.dpkg-bak ..."
+		mv -f "$CONFFILE" "$CONFFILE".dpkg-bak
+	else
+		echo "Removing obsolete conffile $CONFFILE ..."
+		rm -f "$CONFFILE"
+	fi
+}
+
+# move_sem(src,targets)
+#  rename sem/* items named $src to $targets
+#  (with hard links if more than one)
+move_sem() {
+	local src=$1 f="" targ="" freqid="" dir=/var/lib/cloud/sem
+	shift
+	# link the remaining targets to src, if it exists
+	for f in "${dir}/${src}."*; do
+		# if there were no src entries, nothing to do
+		[ -f "${f}" ] || return 0
+		freqid=${f#${dir}/${src}.} # 'i-abcdefg' or 'always'
+		for targ in "$@"; do
+			[ -e "${dir}/${targ}.${freqid}" ] && continue
+			ln -f "${f}" "${dir}/${targ}.${freqid}"
+		done
+		rm "${f}"
+	done
+   return 0
+}
+
+fix_ephemeral0_micro() {
+   # make ephemeral0 entries in /etc/fstab written by cloudconfig
+   # 'nobootwait', so they do not block subsequent boots (LP: #634102)
+   local out="" oldver=$1 dev="" adop="nobootwait"
+   local s="[[:space:]]" ns="[^[:space:]]" # space and "not space"
+   local remain="${s}\+.*" first4=""
+   for dev in /dev/sda2 /dev/sdb; do
+      first4="${dev}$s\+$ns\+$s\+$ns\+$s\+$ns\+"
+      out=$(awk '$1 == dev && $4 ~ /cloudconfig/ &&  $4 !~ op { print $1 ; }' \
+         dev="${dev}" "op=${adop}" /etc/fstab) || return 0
+      [ -n "${out}" ] || continue
+      echo "making ephemeral ${dev} in /etc/fstab ${adop} (LP: #634102)" 1>&2
+      sed -i "s|^\(${first4}\)\(${remain}\)|\1,${adop}\2|" /etc/fstab
+   done
+}
+
+convert_varlib_05x_06x() {
+   local url="http://169.254.169.254/2009-04-04/meta-data/instance-id";
+   local tout="--connect-timeout .5 --read-timeout .5" 
+   local iid="" f="" uptime="" bn=""
+   iid=$(wget "${url}" ${tout} --tries 1 -O - 2>/dev/null) || iid=""
+
+   [ -n "${iid}" -a -d /var/lib/cloud ] || return 0
+   cd /var/lib/cloud
+   mkdir -p "instances/${iid}" "instances/${iid}/sem"
+   [ -e instance ] || ln -sf "instances/${iid}" instance
+   for f in data/*; do
+      [ -f "$f" ] || continue
+      case "${f#*/}" in
+         user-data.txt.i|user-data.txt|cloud-config.txt)
+            mv "${f}" instance/
+            ;;
+      esac
+   done
+   [ -f data/cache/obj.pkl ] && mv data/cache/obj.pkl instance/
+   for f in sem/*.${iid}; do
+      [ -f "${f}" ] || continue
+      bn=${f#*/}; bn=${bn%.${iid}}
+      case "${bn}" in
+         set_defaults) mv "${f}" "instance/sem/config-locale";;
+         set_hostname) mv "${f}" "instance/sem/config-set_hostname";;
+         *) mv "${f}" "instance/sem/${bn}";;
+      esac
+   done
+   [ ! -f sem/update_hostname.always ] ||
+      mv sem/update_hostname.always sem/config-update_hostname.always
+   rmdir data/cache 2>/dev/null || :
+   rm -f data/available.build
+
+   mkdir -p instance/scripts
+   if [ -d data/scripts ]; then
+      mv data/scripts/* instance/scripts || :
+      rmdir data/scripts || :
+   fi
+   [ -d data/scripts/* ] && mv data/scripts instance/
+
+   [ ! -e instance/boot-finished ] &&
+      [ -f /proc/uptime ] && read uptime other </proc/uptime &&
+      echo "${uptime}" > instance/boot-finished || :
+
+   return 0
+}
+
+azure_apply_new_instance_id_1506187() {
+  # With LP: #1506187, the Azure instance ID detection method was changed
+  # to use the DMI data. In order to prevent existing instances from thinking
+  # they are new instances, the instance ID needs to be updated here.
+
+  if grep DataSourceAzure /var/lib/cloud/instance/datasource > /dev/null 2>&1; then
+
+     product_id_f="/sys/devices/virtual/dmi/id/product_uuid"
+     instance_id_f="/var/lib/cloud/data/instance-id"
+
+     if [ ! -e "${product_id_f}" -o ! -e "${instance_id_f}" ]; then
+        return 0
+     fi
+
+     # Get the current instance ID's (new and old)
+     new_instance_id="$(cat ${product_id_f})"
+     old_instance_id="$(cat ${instance_id_f})"
+
+     if [ "${new_instance_id}" = "${old_instance_id}" ]; then
+        # this may have been applied for a prior version, i.e. upgrading
+        # from 14.04 to 16.04
+        return 0
+
+     elif [ -z "${new_instance_id}" -o -z "${old_instance_id}" ]; then
+        cat <<EOM
+
+WARNING: Failed to migrate old instance ID to new instance ID.
+    Cloud-init may detect this instance as a new instance upon reboot.
+    Please see: https://bugs.launchpad.net/bug/1506187
+
+EOM
+
+     elif [ "${new_instance_id}" != "${old_instance_id}" ]; then
+        cat <<EOM
+
+AZURE: this instance uses an unstable instance ID. Cloud-init will
+    migrate the instance ID from:
+            ${old_instance_id}
+        to:
+            ${new_instance_id}
+    For more information about this change, please see:
+    https://bugs.launchpad.net/bug/1506187
+    https://azure.microsoft.com/en-us/blog/accessing-and-using-azure-vm-unique-id
+
+EOM
+
+        # Write the new instance id
+        echo "${new_instance_id}" > /var/lib/cloud/data/instance-id
+
+        # Remove the symlink for the instance
+        rm /var/lib/cloud/instance
+
+        # Rename the old instance id to the new one
+        mv /var/lib/cloud/instances/${old_instance_id} \
+           /var/lib/cloud/instances/${new_instance_id}
+
+        # Link the old id to the new one, just incase
+        ln -s /var/lib/cloud/instances/${new_instance_id} \
+              /var/lib/cloud/instances/${old_instance_id}
+
+        # Make the active instance the new id
+        ln -s /var/lib/cloud/instances/${new_instance_id} \
+              /var/lib/cloud/instance
+  fi
+fi
+}
+
+cleanup_lp1552999() {
+    local oldver="$1" last_bad_ver="0.7.7~bzr1178"
+    dpkg --compare-versions "$oldver" le "$last_bad_ver" || return 0
+    local hdir="/var/lib/systemd/deb-systemd-helper-enabled"
+    hdir="$hdir/multi-user.target.wants" 
+    local edir="/etc/systemd/system/multi-user.target.wants"
+    rm -f "$hdir/cloud-config.service" "$hdir/cloud-final.service" \
+        "$hdir/cloud-init-local.service" "$hdir/cloud-init.service"
+}
+
+case "$1" in
+	install|upgrade)
+		# removing obsolete conffiles from the 'ec2-init' package
+		if dpkg --compare-versions "$2" le "0.5.1"; then
+			rm_conffile ec2-init "/etc/init/cloud-ssh-keygen.conf"
+		fi
+		if dpkg --compare-versions "$2" lt "0.5.3"; then
+			rm_conffile ec2-init "/etc/init/ec2init.conf"
+		fi
+		if [ "$2" = "0.5.7-0ubuntu1" ]; then
+			bad_d=/etc/update-motd.d/92-ec2-upgrade-available
+			rm_conffile cloud-init "${bad_d}/motd-hook"
+			# the dir for this file is almost certainly empty, but
+			# if the file above was only moved, or other files there
+			# then leave it be
+			rmdir "${bad_d}" 2>/dev/null || true
+		fi
+
+		if dpkg --compare-versions "$2" le "0.5.10-0ubuntu2"; then
+			old_confs="cloud-apt-update-upgrade cloud-config-misc
+				cloud-config-mounts cloud-config-puppet
+				cloud-config-ssh cloud-disable-ec2-metadata" 
+			for f in ${old_confs}; do
+				rm_conffile cloud-init "/etc/init/${f}.conf"
+			done
+		fi
+
+		if dpkg --compare-versions "$2" le "0.5.11-0ubuntu1"; then
+			# rename the config entries in sem/ so they're not run again
+
+			# transition names in 0.5.11 had only short name (no config- prefix)
+			# so create config- entries for each
+			for name in apt-update-upgrade disable-ec2-metadata mounts \
+				puppet runcmd ssh updates-check; do
+				move_sem ${name} config-${name}
+			done
+
+			# 0.5.11 split 'config-misc' into 'updates-check' and 'runcmd'
+			move_sem config-misc config-updates-check config-runcmd
+		fi
+
+      if dpkg --compare-versions "$2" le "0.5.14-0ubuntu5"; then
+         fix_ephemeral0_micro
+      fi
+
+      if dpkg --compare-versions "$2" le 0.6.0-0ubuntu1; then
+         # convert /var/lib/cloud from 0.5.x layout to 0.6.x
+         convert_varlib_05x_06x
+      fi
+
+      # 0.6.0 changed 'user-scripts' to config-scripts-user (LP: #1049146)
+      if [ -e /var/lib/cloud/instance/sem/user-scripts ]; then
+         ln -sf user-scripts /var/lib/cloud/instance/sem/config-scripts-user
+      fi
+
+      # 0.7.7-bzr1556 introduced new instance ID source for Azure
+      if dpkg --compare-versions "$2" le "0.7.7~bzr1556-0ubuntu1"; then
+         azure_apply_new_instance_id_1506187
+      fi
+
+      d=/etc/cloud/
+      if [ -f "$d/distro.cfg" ] && [ ! -f "$d/cloud.cfg.d/90_dpkg.cfg" ]; then
+         echo "moving $d/distro.cfg -> $d/cloud.cfg.d/90_dpkg.cfg"
+         [ -d "${d}/cloud.cfg.d" ] || mkdir "${d}/cloud.cfg.d"
+         mv "$d/distro.cfg" "$d/cloud.cfg.d/90_dpkg.cfg"
+      fi
+
+      cleanup_lp1552999 "$oldver"
+esac
+
+#DEBHELPER#
diff --git a/debian/cloud-init.prerm b/debian/cloud-init.prerm
new file mode 100644
index 0000000..8954fa4
--- /dev/null
+++ b/debian/cloud-init.prerm
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+set -e
+rm -f /etc/cron.d/cloudinit-updates
+
+#DEBHELPER#
diff --git a/debian/cloud-init.templates b/debian/cloud-init.templates
new file mode 100644
index 0000000..5ed37f7
--- /dev/null
+++ b/debian/cloud-init.templates
@@ -0,0 +1,12 @@
+Template: cloud-init/datasources
+Type: multiselect
+Default: NoCloud, ConfigDrive, OpenNebula, DigitalOcean, Azure, AltCloud, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, Bigstep, Scaleway, AliYun, Ec2, CloudStack, None
+Choices-C: NoCloud, ConfigDrive, OpenNebula, DigitalOcean, Azure, AltCloud, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, Bigstep, Scaleway, AliYun, Ec2, CloudStack, None
+Choices: NoCloud: Reads info from /var/lib/cloud/seed only, ConfigDrive: Reads data from Openstack Config Drive, OpenNebula: read from OpenNebula context disk, DigitalOcean: reads data from Droplet datasource, Azure: read from MS Azure cdrom. Requires walinux-agent, AltCloud: config disks for RHEVm and vSphere, OVF: Reads data from OVF Transports, MAAS: Reads data from Ubuntu MAAS, GCE: google compute metadata service, OpenStack: native openstack metadata service, CloudSigma: metadata over serial for cloudsigma.com,  SmartOS: Read from SmartOS metadata service, Bigstep: Bigstep metadata service, Scaleway: Scaleway metadata service, AliYun: Alibaba metadata service, Ec2: reads data from EC2 Metadata service, CloudStack: Read from CloudStack metadata service, None: Failsafe datasource
+Description: Which data sources should be searched?
+ Cloud-init supports searching different "Data Sources" for information
+ that it uses to configure a cloud instance.
+ .
+ Warning: Only select 'Ec2' if this system will be run on a system with
+ the EC2 metadata service present.  Doing so incorrectly will result in
+ a substantial timeout on boot.
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..3f46d7b
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,61 @@
+Source: cloud-init
+Section: admin
+Priority: extra
+Maintainer: Scott Moser <smoser@xxxxxxxxxx>
+Build-Depends: debhelper (>= 9),
+               dh-python,
+               dh-systemd,
+               iproute2,
+               pep8,
+               po-debconf,
+               pyflakes,
+               python3,
+               python3-configobj,
+               python3-httpretty,
+               python3-jinja2,
+               python3-jsonpatch,
+               python3-jsonschema,
+               python3-mock,
+               python3-nose,
+               python3-oauthlib,
+               python3-pep8,
+               python3-pyflakes | pyflakes (<< 1.1.0-2),
+               python3-requests,
+               python3-serial,
+               python3-setuptools,
+               python3-six,
+               python3-unittest2,
+               python3-yaml
+XS-Python-Version: all
+Vcs-Browser: https://git.launchpad.net/cloud-init/?h=ubuntu/devel
+Vcs-Git: git://git.launchpad.net/cloud-init -b ubuntu/devel
+Standards-Version: 3.9.8
+
+Package: cloud-init
+Architecture: all
+Depends: cloud-guest-utils | cloud-utils,
+         nplan | ifupdown,
+         procps,
+         python3,
+         python3-requests,
+         python3-serial,
+         ${misc:Depends},
+         ${python3:Depends}
+Recommends: eatmydata, gdisk, software-properties-common
+XB-Python-Version: ${python:Versions}
+Description: Init scripts for cloud instances
+ Cloud instances need special scripts to run during initialisation
+ to retrieve and install ssh keys and to let the user run various scripts.
+
+Package: grub-legacy-ec2
+Depends: debconf | cdebconf,
+         ucf,
+         util-linux,
+         ${misc:Depends}
+Conflicts: grub
+Suggests: grub-legacy-doc
+Architecture: all
+Description: Handles update-grub for ec2 instances
+ EC2 instances that use grub-legacy as a bootloader need a way to keep
+ /boot/grub/menu.lst up to date while not conflicting with grub-pc.
+ This package provides that.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..598cda1
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,40 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: cloud-init
+Upstream-Contact: cloud-init-dev@xxxxxxxxxxxxxxxxxxx
+Source: https://launchpad.net/cloud-init
+
+Files: *
+Copyright: 2010, Canonical Ltd.
+License: GPL-3 or Apache-2.0
+
+License: GPL-3
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3, as
+ published by the Free Software Foundation.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ .
+ The complete text of the GPL version 3 can be seen in
+ /usr/share/common-licenses/GPL-3.
+
+License: Apache-2.0
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ .
+    http://www.apache.org/licenses/LICENSE-2.0
+ .
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ .
+ On Debian-based systems the full text of the Apache version 2.0 license
+ can be found in `/usr/share/common-licenses/Apache-2.0'.
diff --git a/debian/grub-legacy-ec2.install b/debian/grub-legacy-ec2.install
new file mode 100644
index 0000000..f9ac628
--- /dev/null
+++ b/debian/grub-legacy-ec2.install
@@ -0,0 +1,4 @@
+debian/grub-set-default usr/sbin
+debian/grub-set-default-legacy-ec2 usr/sbin
+debian/kernel etc/
+debian/update-grub-legacy-ec2 usr/sbin
diff --git a/debian/grub-legacy-ec2.lintian-overrides b/debian/grub-legacy-ec2.lintian-overrides
new file mode 100644
index 0000000..ed8c77f
--- /dev/null
+++ b/debian/grub-legacy-ec2.lintian-overrides
@@ -0,0 +1,6 @@
+# no-debconf-config and debconf-is-not-a-registry lintian errors
+# are present in the ubuntu grub package that these were pulled from.
+# they're due to the use of debconf for merging prompt in
+# update-grub-legacy-ec2
+grub-legacy-ec2 binary: no-debconf-config
+grub-legacy-ec2 binary: debconf-is-not-a-registry
diff --git a/debian/grub-legacy-ec2.postinst b/debian/grub-legacy-ec2.postinst
new file mode 100644
index 0000000..3c4aa5c
--- /dev/null
+++ b/debian/grub-legacy-ec2.postinst
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = "configure" ]; then
+   mkdir -p /boot/grub
+   update-grub-legacy-ec2 -y
+fi
+
+#DEBHELPER#
diff --git a/debian/grub-legacy-ec2.postrm b/debian/grub-legacy-ec2.postrm
new file mode 100644
index 0000000..5018423
--- /dev/null
+++ b/debian/grub-legacy-ec2.postrm
@@ -0,0 +1,17 @@
+#!/bin/sh
+set -e
+
+if [ "$1" = purge ]; then
+   if [ -x "`which ucf 2>/dev/null`" ]; then
+      ucf --purge /var/run/grub/menu.lst
+   fi
+   if [ -x "`which ucfr 2>/dev/null`" ]; then
+      ucfr --purge grub /var/run/grub/menu.lst
+   fi
+fi
+
+if [ "$1" = "remove" ]; then
+   dpkg-divert --package grub-legacy-ec2 --remove --rename --divert \
+      /usr/sbin/grub-set-default.real /usr/sbin/grub-set-default
+fi
+#DEBHELPER#
diff --git a/debian/grub-legacy-ec2.preinst b/debian/grub-legacy-ec2.preinst
new file mode 100644
index 0000000..ac73b42
--- /dev/null
+++ b/debian/grub-legacy-ec2.preinst
@@ -0,0 +1,9 @@
+#!/bin/sh
+set -e
+
+if [ "$1" = "install" -o "$1" = "upgrade" ]; then
+   dpkg-divert --package grub-legacy-ec2 --rename --divert \
+       /usr/sbin/grub-set-default.real --add /usr/sbin/grub-set-default
+fi
+
+#DEBHELPER#
diff --git a/debian/grub-legacy-ec2.templates b/debian/grub-legacy-ec2.templates
new file mode 100644
index 0000000..0562c8c
--- /dev/null
+++ b/debian/grub-legacy-ec2.templates
@@ -0,0 +1,9 @@
+Template: grub/update_grub_changeprompt_threeway
+Type: select
+# Translators, please keep translations *short* (less than 65 columns)
+__Choices: install the package maintainer's version, keep the local version currently installed, show the differences between the versions, show a side-by-side difference between the versions, show a 3-way difference between available versions, do a 3-way merge between available versions (experimental), start a new shell to examine the situation
+Choices-C: install_new, keep_current, diff, sdiff, diff_threeway, merge_threeway, shell
+Default: keep_current
+_Description: What would you like to do about ${BASENAME}?
+ A new version of /boot/grub/menu.lst is available, but the version installed
+ currently has been locally modified.
diff --git a/debian/grub-set-default b/debian/grub-set-default
new file mode 100755
index 0000000..8816bc7
--- /dev/null
+++ b/debian/grub-set-default
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+diverted=/usr/sbin/grub-set-default.real
+legacy_ec2=/usr/sbin/grub-set-default-legacy-ec2
+normal=/usr/sbin/grub-set-default
+
+warn() { echo "WARNING:" "$@" 1>&2; }
+Usage() {
+   cat <<EOF
+${0} is a wrapper provided by grub-legacy-ec2.
+It ensures that the appropriate 'set-default' is called.
+For specific version or help info invoke one of the following directly:
+  ${diverted}
+ and 
+  ${legacy_ec2} 
+EOF
+}
+
+[ $# -eq 0 ] && { Usage; exit 1; }
+for a in "$@"; do
+   case "$a" in
+      --help|-h|-v|--version) Usage; exit 0;;
+   esac
+done
+
+"${legacy_ec2}" "${@}"
+lret=$?
+[ ${lret} -eq 0 ] || warn "${legacy_ec2} returned ${lret}"
+
+dret=0
+if [ -x "${diverted}" -a -f "/boot/grub/grub.cfg" ]; then
+   "${diverted}" "$@"
+   dret=$?
+fi
+[ ${dret} -eq 0 ] || warn "${diverted} returned ${dret}"
+
+[ $lret -eq 0 -a $dret -eq 0 ]
+exit
diff --git a/debian/grub-set-default-legacy-ec2 b/debian/grub-set-default-legacy-ec2
new file mode 100644
index 0000000..dcd88fb
--- /dev/null
+++ b/debian/grub-set-default-legacy-ec2
@@ -0,0 +1,141 @@
+#! /bin/sh
+
+# Set a default boot entry for GRUB
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Initialize some variables.
+PACKAGE=grub-legacy-ec2
+VERSION=0.97-29ubuntu60
+
+rootdir=
+entry=
+
+# Usage: usage
+# Print the usage.
+usage () {
+    cat <<EOF
+Usage: grub-set-default [OPTION] entry
+Set the default boot entry for GRUB.
+
+  -h, --help              print this message and exit
+  -v, --version           print the version information and exit
+  --root-directory=DIR    Use the directory DIR instead of the root directory
+
+ENTRY is a number or the special keyword \`default\'.
+
+Report bugs to <bug-grub@xxxxxxx>.
+EOF
+}
+
+# Check the arguments.
+for option in "$@"; do
+    case "$option" in
+    -h | --help)
+	usage
+	exit 0 ;;
+    -v | --version)
+	echo "grub-set-default (GNU GRUB ${VERSION})"
+	exit 0 ;;
+    --root-directory=*)
+	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+    -*)
+	echo "Unrecognized option \`$option'" 1>&2
+	usage
+	exit 1
+	;;
+    *)
+	if test "x$entry" != x; then
+	    echo "More than one entries?" 1>&2
+	    usage
+	    exit 1
+	fi
+	# We don't care about what the user specified actually.
+	entry="${option}" ;;
+    esac
+done
+
+if test "x$entry" = x; then
+    echo "entry not specified." 1>&2
+    usage
+    exit 1
+fi
+
+find_grub_dir ()
+{
+        echo  -n "Searching for GRUB installation directory ... " >&2
+
+        for d in $grub_dirs ; do
+                if [ -d "$d" ] ; then
+                        grub_dir="$d"
+                        break
+                fi
+        done
+
+        if [ -z "$grub_dir" ] ; then
+                abort "No GRUB directory found.\n###"
+        else
+                echo "found: $grub_dir" >&2
+        fi
+
+        echo $grub_dir
+}
+
+grub_dirs="/boot/grub /boot/boot/grub"
+
+# Determine the GRUB directory. This is different among OSes.
+# if rootdir has been informed use it or find grubdir otherwise
+if [ -n "${rootdir}" ]; then
+  grubdir=${rootdir}/boot/grub
+  if test -d ${grubdir}; then
+    :
+  else
+    grubdir=${rootdir}/grub
+    if test -d ${grubdir}; then
+        :
+    else
+        echo "No GRUB directory found under ${rootdir}/" 1>&2
+        exit 1
+    fi
+  fi
+else
+  grubdir=$(find_grub_dir)
+fi
+
+file=${grubdir}/default
+if test -f ${file}; then
+    chmod 0600 ${file}
+    rm -f ${file}
+fi
+cat <<EOF > $file
+$entry
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+# WARNING: If you want to edit this file directly, do not remove any line
+# from this file, including this warning. Using \`grub-set-default\' is
+# strongly recommended.
+EOF
+
+# Bye.
+exit 0
diff --git a/debian/kernel/postinst.d/x-grub-legacy-ec2 b/debian/kernel/postinst.d/x-grub-legacy-ec2
new file mode 100755
index 0000000..3343651
--- /dev/null
+++ b/debian/kernel/postinst.d/x-grub-legacy-ec2
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+version="$1"
+bootopt=""
+
+# passing the kernel version is required
+[ -z "${version}" ] && exit 0
+
+# avoid running multiple times
+if [ -n "$DEB_MAINT_PARAMS" ]; then
+	eval set -- "$DEB_MAINT_PARAMS"
+	if [ -z "$1" ] || [ "$1" != "configure" ]; then
+		exit 0
+	fi
+fi
+
+update=/usr/sbin/update-grub-legacy-ec2
+[ ! -x "${update}" ] || exec "${update}"
diff --git a/debian/kernel/postrm.d/x-grub-legacy-ec2 b/debian/kernel/postrm.d/x-grub-legacy-ec2
new file mode 100755
index 0000000..6f6aa4a
--- /dev/null
+++ b/debian/kernel/postrm.d/x-grub-legacy-ec2
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+version="$1"
+bootopt=""
+
+# passing the kernel version is required
+[ -z "${version}" ] && exit 0
+
+# avoid running multiple times
+if [ -n "$DEB_MAINT_PARAMS" ]; then
+	eval set -- "$DEB_MAINT_PARAMS"
+	if [ -z "$1" ] || [ "$1" != "remove" ]; then
+		exit 0
+	fi
+fi
+
+update=/usr/sbin/update-grub-legacy-ec2
+[ ! -x "${update}" ] || exec "${update}"
diff --git a/debian/new-upstream-snapshot b/debian/new-upstream-snapshot
new file mode 100755
index 0000000..6ad8af6
--- /dev/null
+++ b/debian/new-upstream-snapshot
@@ -0,0 +1,170 @@
+#!/bin/sh
+
+TEMP_D=""
+CR='
+'
+error() { echo "$@" 1>&2; }
+fail() { [ $# -eq 0 ] || error "$@"; exit 1; }
+Usage() {
+cat <<EOF
+${0##*/} [branch]
+    update current branch with trunk branch.
+    branch defaults to 'master'
+EOF
+}
+
+print_commit() {
+    local subject="$1" author="$2" bugs="$3" aname="" buf="" abugs=""
+    local indent="    - " indent2="      " ll=79
+    aname=${author% <*}
+    [ "${aname}" = "Scott Moser" ] && aname=""
+    abugs="${aname:+ [${aname}]}${bugs:+ (LP: ${bugs})}"
+    if [ $((${#subject}+${#abugs})) -le $(($ll-${#indent})) ]; then
+        echo "${indent}${subject}${abugs}"
+    elif [ ${#subject} -ge $(($ll-${#indent})) ]; then
+        echo "${subject}${abugs}" |
+            fmt --width=$(($ll-${#indent})) |
+            sed -e "1s/^/${indent}/; 1n;" \
+                -e 's/^[ ]*//' \
+                -e '/^[ ]*$/d' -e "s/^/$indent2/" -e 's/[ ]\+$//'
+
+    else
+        ( echo "${subject}"; echo "${abugs}" ) |
+            fmt --width=$(($ll-${#indent})) |
+            sed -e "1s/^/${indent}/; 1n;" \
+                -e 's/^[ ]*//' \
+                -e '/^[ ]*$/d' -e "s/^/$indent2/" -e 's/[ ]\+$//'
+    fi
+}
+
+git_log_to_dch() {
+    local line="" commit="" lcommit="" bugs=""
+    while :; do
+        read line || break
+        case "$line" in
+            commit\ *)
+                if [ -n "$commit" ]; then
+                    print_commit "$subject" "$author" "$bugs"
+                fi
+                commit=${line#*: }
+                bugs=""
+                author=""
+                subject=""
+                ;;
+            Author:*) author="${line#Author: }";;
+            LP:*) bugs="${bugs:+${bugs}, }${line#*: }";;
+            "") [ -z "$subject" ] && read subject;;
+        esac
+    done
+    if [ -n "$commit" ]; then
+        print_commit "$subject" "$author" "$bugs"
+    fi
+}
+cleanup() {
+    [ ! -d "${TEMP_D}" ] || rm -Rf "${TEMP_D}"
+}
+
+from_ref=${1:-"master"}
+cur_branch=$(git rev-parse --abbrev-ref HEAD) ||
+   fail "failed to get current branch"
+
+case "$cur_branch" in
+    ubuntu/*) :;;
+    *) fail "You are on branch '$cur_branch', expect to be on ubuntu/*";;
+esac
+
+TEMP_D=$(mktemp -d) || fail "failed mktemp"
+trap cleanup EXIT
+
+prev_pkg_ver=$(dpkg-parsechangelog --show-field Version) ||
+   fail "failed reading package version"
+pkg_name=$(dpkg-parsechangelog --show-field Source) ||
+   fail "failed to read Source from changelog"
+
+# turn 0.7.7-10-gbc2c326-0ubuntu1 into 'bc2c326'
+t=${prev_pkg_ver%-*}
+prev_pkg_hash=${t##*-g}
+
+new_pkg_debian="0ubuntu1"
+new_upstream_ver=$(git describe --abbrev=8 "${from_ref}")
+new_pkg_ver="${new_upstream_ver}-${new_pkg_debian}"
+
+prev_upstream_ver=${prev_pkg_ver%-*}
+if [ "${prev_upstream_ver}" = "${new_upstream_ver}" ]; then
+    echo "nothing to commit.  '$from_ref' is at ${new_upstream_ver}."
+    exit 0
+fi
+
+dpseries="debian/patches/series"
+if [ -e $dpseries ]; then
+   drops=""
+   while read bname extra; do
+      case "$bname" in
+         cpick-*)
+            commit=${bname#cpick-}
+            commit=${commit%%-*}
+            echo "bname=$bname commit=${commit}" 1>&2
+            if git merge-base --is-ancestor "$commit" "$from_ref"; then
+               drops="${drops} debian/patches/$bname"
+            fi
+            ;;
+         *) echo "$bname${extra:+ ${extra}}";;
+      esac
+   done < $dpseries > "${TEMP_D}/series"
+   drops=${drops# }
+   if [ -n "$drops" ]; then
+      cp "${TEMP_D}/series" "$dpseries" ||
+         fail "failed copying to $dpseries"
+      if [ ! -s $dpseries ]; then
+         git rm --force "$dpseries" ||
+            fail "failed removing empty $dpseries: git rm $dpseries"
+      fi
+      msg="drop cherry picks before merge from ${from_ref} at $new_upstream_ver"
+      msg="$msg${CR}${CR}drop the following cherry picks:"
+      for file in $drops; do
+         git rm "$file" || fail "failed to git rm $file"
+         msg="${msg}$CR  $file"
+      done
+      git commit -m "$msg" "$dpseries" $drops
+   fi
+fi
+
+git merge "${from_ref}" -m "merge from $from_ref at $new_upstream_ver" ||
+    fail "failed: git merge ${from_ref} -m 'merge from $from_ref ..'"
+clog="${TEMP_D}/changelog"
+gitlog="${TEMP_D}/gitlog"
+
+git log --first-parent --no-decorate --format=full \
+   "${prev_pkg_hash}..${from_ref}" >  "$gitlog" ||
+   fail "failed git log ${prev_pkg_hash}..${from_ref}"
+
+cat >> "$clog" <<EOF
+$pkg_name ($new_pkg_ver) UNRELEASED; urgency=medium
+
+  * New upstream snapshot.
+EOF
+git_log_to_dch < "$gitlog" >> "$clog" ||
+   fail "failed git_log_to_dch"
+cat >> "$clog" <<EOF
+
+ -- ${DEBFULLNAME} <$DEBEMAIL>  $(date -R)
+
+EOF
+
+cat "$clog" "debian/changelog" > "$TEMP_D/newlog" &&
+   cp "$TEMP_D/newlog" "debian/changelog" ||
+   fail "failed replacing debian/changelog"
+
+dch -e || fail "dch -e exited $?"
+
+git diff
+
+echo -n "Commit this change? (Y/n): "
+read answer || fail "failed to read answer"
+case "$answer" in
+   n|[Nn][oO]) exit 1;;
+esac
+
+msg="update changelog (new upstream snapshot $new_upstream_ver)."
+git commit -m "$msg" debian/changelog ||
+   fail "failed to commit '$msg'"
diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
new file mode 100644
index 0000000..9dc1b8f
--- /dev/null
+++ b/debian/po/POTFILES.in
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] grub.templates
diff --git a/debian/po/ca.po b/debian/po/ca.po
new file mode 100644
index 0000000..e839a46
--- /dev/null
+++ b/debian/po/ca.po
@@ -0,0 +1,80 @@
+# ucf (debconf) translation to Catalan.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Aleix Badia i Bosch <abadia@xxxxxx>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf_0.30_templates\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-09-19 01:08-0500\n"
+"Last-Translator: Aleix Badia i Bosch <abadia@xxxxxx>\n"
+"Language-Team: Catalan <debian-l10n-catalan@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "instal�la la versi� del mantenidor del paquet"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "mant�n la versi� instal�lada actualment"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "mostra les difer�ncies entre les versions"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "mostra les difer�ncies entre les versions"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "mostra les difer�ncies entre les versions"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr ""
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "inicia una nova l�nia de comandes per examinar la situaci�"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Qu� voleu fer respecte el ${BASNAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Hi ha una nova versi� del fitxer /boot/grub/menu.lst, per� la vostra versi� "
+"s'ha modificat localment."
diff --git a/debian/po/cs.po b/debian/po/cs.po
new file mode 100644
index 0000000..7d8db4a
--- /dev/null
+++ b/debian/po/cs.po
@@ -0,0 +1,89 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-06-23 14:31+0200\n"
+"Last-Translator: Miroslav kure <kurem@xxxxxxxxx>\n"
+"Language-Team: Czech <debian-l10n-czech@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "instalovat verzi od správce balíku"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "ponechat aktuálně instalovanou lokální verzi"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "zobrazit rozdíly mezi verzemi"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "zobrazit rozdíly mezi verzemi vedle sebe"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "zobrazit třícestný rozdíl mezi dostupnými verzemi"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "provést třícestné sloučení dostupných verzí (experimentální)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "spustit nový shell a prozkoumat situaci"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Co chcete udělat s ${BASENAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"K dispozici je novější verze souboru /boot/grub/menu.lst, avšak "
+"nainstalovaná verze obsahuje lokální úpravy."
diff --git a/debian/po/da.po b/debian/po/da.po
new file mode 100644
index 0000000..399439c
--- /dev/null
+++ b/debian/po/da.po
@@ -0,0 +1,86 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Claus Hindsgaul <claus_h@xxxxxxxx>, 2005.
+# Claus Hindsgaul <claus.hindsgaul@xxxxxxxxx>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf debconf template\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-09-19 01:09-0500\n"
+"Last-Translator: Claus Hindsgaul <claus.hindsgaul@xxxxxxxxx>\n"
+"Language-Team: Danish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "install�r pakkevedligeholderens udgave"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "bevar din aktuelt-installerede udgave"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "vis forskellene mellem udgaverne"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "vis forskellene mellem versionerne overfor hinanden"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "vis 3-vejs forskelle mellem de tilg�ngelige udgaver af filen"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr ""
+"udf�r en 3-vejs fletning mellem de tilg�ngelige udgaver af filen [Meget "
+"eksperimentelt]"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "start en ny skal for at unders�ge situationen"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Hvad vil du g�re med ${BASENAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Der er kommet en ny version af filen /boot/grub/menu.lst, men din version er "
+"blevet �ndret lokalt."
diff --git a/debian/po/de.po b/debian/po/de.po
new file mode 100644
index 0000000..294f739
--- /dev/null
+++ b/debian/po/de.po
@@ -0,0 +1,92 @@
+# translation of ucf_3.002_de.po to German
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans#
+#    Developers do not need to manually edit POT or PO files.
+#
+# Erik Schanze <eriks@xxxxxxxxxx>, 2004-2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf_3.002_de\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-07-01 22:08+0200\n"
+"Last-Translator: Erik Schanze <eriks@xxxxxxxxxx>\n"
+"Language-Team: German <debian-l10n-german@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "Version des Paket-Betreuers installieren"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "aktuell installierte Version behalten"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "Unterschiede zwischen den Versionen anzeigen"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "Unterschiede zwischen den Versionen nebeneinander anzeigen"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "3-Wege-Differenz der verfügbaren Versionen der Datei anzeigen"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "3-Wege-Vereinigung verfügbarer Versionen [experimentell]"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "die Angelegenheit in einer neu gestarteten Shell untersuchen"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Wie wollen Sie mit ${BASENAME} verfahren?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Eine neue Version der Datei /boot/grub/menu.lst ist verfügbar, aber die "
+"installierte Version wurde verändert."
diff --git a/debian/po/es.po b/debian/po/es.po
new file mode 100644
index 0000000..725d9e9
--- /dev/null
+++ b/debian/po/es.po
@@ -0,0 +1,105 @@
+# ucf translation to spanish
+# Copyright (C) 2004-2007 Software in the Public Interest
+# This file is distributed under the same license as the ucf package.
+#
+# Changes:
+# - Initial translation
+#       Lucas Wall <kthulhu@xxxxxxx>, 2004
+# - Updated 
+#       Javier Fernandez-Sanguino <jfs@xxxxxxxxxx>, 2007
+#
+#
+#  Traductores, si no conoce el formato PO, merece la pena leer la 
+#  documentaci�n de gettext, especialmente las secciones dedicadas a este
+#  formato, por ejemplo ejecutando:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+# Equipo de traducci�n al espa�ol, por favor lean antes de traducir
+# los siguientes documentos:
+#
+# - El proyecto de traducci�n de Debian al espa�ol
+#   http://www.debian.org/intl/spanish/coordinacion
+#   especialmente las notas de traducci�n en
+#   http://www.debian.org/intl/spanish/notas
+#
+# - La gu�a de traducci�n de po's de debconf:
+#   /usr/share/doc/po-debconf/README-trans
+#   o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf 1.06\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-06-21 13:41+0200\n"
+"Last-Translator: Javier Fernandez-Sanguino <jfs@xxxxxxxxxx>\n"
+"Language-Team: Debian Spanish <debian-l10n-spanish@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "instalar la versi�n del responsable del paquete"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "conservar la versi�n local actualmente instalada"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "mostrar las diferencias entre las versiones"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "mostrar las diferencias entre las versiones lado a lado"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "mostrar las diferencias entre las tres versiones"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "fusionar las tres versiones disponibles (experimental)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "ejecutar un nuevo int�rprete para examinar la situaci�n"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "�Qu� desea hacer con ${BASENAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Hay una nueva versi�n del fichero /boot/grub/menu.lst, pero la versi�n que "
+"est� instalada ha sido modificada localmente."
diff --git a/debian/po/eu.po b/debian/po/eu.po
new file mode 100644
index 0000000..ddf7d2a
--- /dev/null
+++ b/debian/po/eu.po
@@ -0,0 +1,83 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Piarres Beobide <pi@xxxxxxxxxxx>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf-debconf\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-06-20 13:40+0200\n"
+"Last-Translator: Piarres Beobide <pi@xxxxxxxxxxx>\n"
+"Language-Team: Euskara <Librezale@xxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 0.11\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "Pakete arduradunaren bertsioa instalatu"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "mantendu lokalean instalaturiko bertsioa"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "bertsioen arteko ezberdintasunak ikusi"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "bertsioen arteko ezberdintasunak aldez-alde ikusi"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "bertsioen arteko ezberdintasunak 3 eratara ikusi"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "bertsioen arteko ezberdintasunak 3 eratara batu (esperimentala)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "shell berri bat hasi egoera aztertzeko"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Zer egitea gustatuko litzaizuke ${BASENAME}-ri buruz?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"/boot/grub/menu.lst fitxategiaren bertsio berri bat dago eskuragarri, baina "
+"instalaturik dagoenak lokalean eraldatua izan da."
diff --git a/debian/po/fi.po b/debian/po/fi.po
new file mode 100644
index 0000000..62da440
--- /dev/null
+++ b/debian/po/fi.po
@@ -0,0 +1,79 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf_3.003\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-10-30 18:42+0200\n"
+"Last-Translator: Esko Arajärvi <edu@xxxxxx>\n"
+"Language-Team: Finnish <debian-l10n-finnish@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Finnish\n"
+"X-Poedit-Country: FINLAND\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "asenna paketin ylläpitäjän versio"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "säilytä tällä hetkellä asennettu paikallinen versio"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "näytä versioiden väliset erot"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "näytä versioiden väliset erot rinnakkain"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "näytä versioiden välinen kolmisuuntainen erotus"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "tee kolmisuuntainen versioiden yhdistys (kokeellinen)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "käynnistä uusi kuori tilanteen tutkimiseksi"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Miten käsitellään ${BASENAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Asetustiedostosta /boot/grub/menu.lst on tarjolla uusi versio, mutta "
+"nykyistä versiota on muokattu paikallisesti."
diff --git a/debian/po/fr.po b/debian/po/fr.po
new file mode 100644
index 0000000..1598329
--- /dev/null
+++ b/debian/po/fr.po
@@ -0,0 +1,78 @@
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fr\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-06-19 09:36+0200\n"
+"Last-Translator: Eric Madesclair <eric-m@xxxxxxxxxx>\n"
+"Language-Team: French <debian-l10n-french@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "Installer la version du responsable du paquet"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "Garder la version actuellement installée"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "Montrer les différences entre les versions"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "Montrer côte à côte les différences entre les versions"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "Montrer les différences entre les trois versions du fichier"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "Fusionner les trois versions disponibles du fichier (expérimental)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "Lancer un shell pour examiner la situation"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Action souhaitée pour ${BASENAME} :"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Une nouvelle version du fichier /boot/grub/menu.lst est disponible mais la "
+"version actuellement utilisée a été modifiée localement."
diff --git a/debian/po/gl.po b/debian/po/gl.po
new file mode 100644
index 0000000..6547ad3
--- /dev/null
+++ b/debian/po/gl.po
@@ -0,0 +1,80 @@
+# Galician translation of ucf's debconf templates.
+# This file is distributed under the same license as the ucf package.
+# Jacobo Tarrio <jtarrio@xxxxxxxxxx>, 2006, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-06-20 15:50+0200\n"
+"Last-Translator: Jacobo Tarrio <jtarrio@xxxxxxxxxx>\n"
+"Language-Team: Galician <proxecto@xxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "instalar a versión do mantedor de paquetes"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "conservar a versión local instalada actualmente"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "amosar as diferencias entre as versións"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "amosar unha comparación entre as versións"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "amosar unha diferencia a tres entre as versións dispoñibles"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "mesturar as versións dispoñibles (experimental)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "iniciar un intérprete de ordes para examinar a situación"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "¿Que quere facer con ${BASENAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Hai dispoñible unha nova versión do ficheiro /boot/grub/menu.lst, pero a "
+"versión actualmente instalada ten modificacións locais."
diff --git a/debian/po/it.po b/debian/po/it.po
new file mode 100644
index 0000000..f344e46
--- /dev/null
+++ b/debian/po/it.po
@@ -0,0 +1,81 @@
+# translation of ucf_1.18_templates.po to italian
+# Copyright Luca Bruno <luca.br@xxxxxx>, 2005.
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf_1.18_templates\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-09-19 01:10-0500\n"
+"Last-Translator: Luca Bruno <luca.br@xxxxxx>\n"
+"Language-Team:  Italian <tp@xxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "installare la versione del manutentore del pacchetto"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "mantenere la propria versione attualmente installata"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "mostrare le differenze tra le versioni"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "mostrare le differenze tra le versioni"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "Mostrare le differenze tra 3 versioni del file disponibili"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr ""
+"Integrare le differenze tra 3 versioni del file disponibili [Molto "
+"sperimentale]"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "eseguire una nuova shell per esaminare la situazione"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Cosa si vuol fare di ${BASENAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Una nuova versione del file /boot/grub/menu.lst è disponibile, ma la propria "
+"versione è stata modificata localmente."
diff --git a/debian/po/ja.po b/debian/po/ja.po
new file mode 100644
index 0000000..981ef22
--- /dev/null
+++ b/debian/po/ja.po
@@ -0,0 +1,90 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-06-21 14:11+0900\n"
+"Last-Translator: Kenshi Muto <kmuto@xxxxxxxxxx>\n"
+"Language-Team: Japanese <debian-japanese@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "パッケージメンテナのバージョンをインストール"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "現在インストールされているローカルバージョンを保持"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "バージョン間の差異を表示"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "バージョン間の差異を並行表示"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "利用可能なバージョン間の3種類の差異を表示"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "利用可能なバージョン間での3種類マージを行う (実験的)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "状況を検討するための新しいシェルを起動"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "${BASENAME} について何を行いたいですか?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"設定ファイル /boot/grub/menu.lst の新しいバージョンが利用可能ですが、現在イン"
+"ストールされているバージョンは、ローカルで変更されています。"
diff --git a/debian/po/nl.po b/debian/po/nl.po
new file mode 100644
index 0000000..e8acf63
--- /dev/null
+++ b/debian/po/nl.po
@@ -0,0 +1,95 @@
+# translation of ucf_2.007_templates.po to dutch
+# This file is distributed under the same license as the ucf package.
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf_2.007_nl\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-09-19 01:09-0500\n"
+"Last-Translator: Kurt De Bree <kdebree(AT)telenet(DOT)be>\n"
+"Language-Team: Nederlands <debian-l10n-dutch@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.10.2\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "installeer de versie van de pakketbeheerder"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "behoud de reeds geïnstalleerde versie"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "toon de verschillen tussen de versies"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "toon de verschillende versies zij-aan-zij"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr ""
+"toon een drievoudig verschil tussen de beschikbare versies van het bestand"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr ""
+"doe een drievoudige samenvoeging tussen de beschikbare versies van het "
+"bestand (Zeer Experimenteel)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "start een nieuwe shell om de situatie te onderzoeken"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Wat wilt u met ${BASENAME} doen?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Een nieuwe versie van het bestand /boot/grub/menu.lst is beschikbaar, maar "
+"uw versie werd handmatig gewijzigd."
diff --git a/debian/po/pl.po b/debian/po/pl.po
new file mode 100644
index 0000000..a42099e
--- /dev/null
+++ b/debian/po/pl.po
@@ -0,0 +1,100 @@
+# translation of ucf3002.po to Polish
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+# Wojciech Zar�ba <wojtekz@xxxxxxxxxxx>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf3002\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-06-27 17:15+0200\n"
+"Last-Translator: Wojciech Zar�ba <wojtekz@xxxxxxxxxxxxxxxxx>\n"
+"Language-Team: Polish <pl@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "zainstalowanie wersji przygotowanej przez opiekuna pakietu"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "zachowanie lokalnie zainstalowanej wersji"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "pokazanie r�nic pomi�dzy wersjami"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "pokazanie r�nic - obok siebie - pomi�dzy wersjami"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "pokazanie r�nic pomi�dzy trzema dost�pnymi wersjami"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "scalenie zmian pomi�dzy 3 dost�pnymi wersjami (eksperymentalne)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "uruchomienie pow�oki w celu zbadania sytuacji"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Prosz� wybra� akcj� do wykonania na pliku ${BASENAME}:"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Dost�pna jest nowa wersja pliku /boot/grub/menu.lst, ale obecna wersja "
+"zosta�a lokalnie zmodyfikowana."
+
+#~ msgid "Modified configuration file"
+#~ msgstr "Zmodyfikowany plik konfiguracyjny"
+
+#~ msgid "Line by line differences between versions"
+#~ msgstr "R�nice linia po linii pomi�dzy wersjami"
diff --git a/debian/po/pt.po b/debian/po/pt.po
new file mode 100644
index 0000000..23c7f8f
--- /dev/null
+++ b/debian/po/pt.po
@@ -0,0 +1,82 @@
+# Portuguese translation of ucf's debconf messages.
+# 2007, Pedro Ribeiro <p.m42.ribeiro@xxxxxxxxx>
+# Bruno Queiros <brunomiguelqueiros@xxxxxxx>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf 2.0020\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-09-19 01:09-0500\n"
+"Last-Translator: Bruno Queiros <brunomiguelqueiros@xxxxxxx>\n"
+"Language-Team: Portuguese <traduz@xxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "instalar a versão do criador do pacote"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "manter a versão actualmente instalada"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "mostrar a diferença entre as versões"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "mostrar uma diferença lado-a-lado entre as versões"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "mostrar uma diferença em 3 vias entre versões disponíveis do ficheiro"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr ""
+"fazer uma junção em 3 vias entre versões disponíveis do ficheiro [Muito "
+"Experimental]"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "iniciar uma nova consola para examinar a situação"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "O que quer fazer acerca de ${BASENAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Uma nova versão do ficheiro /boot/grub/menu.lst está disponível, mas a sua "
+"versão foi modificada localmente."
diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po
new file mode 100644
index 0000000..9d736b9
--- /dev/null
+++ b/debian/po/pt_BR.po
@@ -0,0 +1,89 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-09-19 01:11-0500\n"
+"Last-Translator: André Luís Lopes <andrelop@xxxxxxxxxx>\n"
+"Language-Team: Debian-BR Project <debian-l10n-portuguese@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "instalar a versão do mantenedor do pacote"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "manter a versão instalada atualmente"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "exibir as diferenças entre as versões"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "exibir as diferenças lado-a-lado entre as versões"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "exibir as diferenças entre as três versões disponíveis do arquivo"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "juntar as 3 versões disponíveis do arquivo [Bem Experimental]"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "iniciar um novo shell e examinar a situação"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "O que você gostaria de fazer em relação a ${BASENAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Uma nova versão do arquivo /boot/grub/menu.lst está disponível, mas sua "
+"versão local foi modificada."
diff --git a/debian/po/ru.po b/debian/po/ru.po
new file mode 100644
index 0000000..6560fe3
--- /dev/null
+++ b/debian/po/ru.po
@@ -0,0 +1,85 @@
+# translation of ru.po to Russian
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Yuri Kozlov <kozlov.y@xxxxxxxxx>, 2006, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: 3.001\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-07-01 13:45+0400\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@xxxxxxxxx>\n"
+"Language-Team: Russian <debian-l10n-russian@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "установить версию из пакета"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "сохранить установленную локальную версию"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "показать различия между версиями"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "показать различия между версиями параллельно"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "показать различия сразу между 3-мя доступными версиями"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "выполнить слияние 3-х доступных версий [экспериментальный режим]"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "запустить новую оболочку командной строки для прояснения ситуации"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Что нужно сделать с ${BASENAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Доступна новая версия файла /boot/grub/menu.lst, но версия файла, "
+"находящегося в системе, была изменёна локально."
diff --git a/debian/po/sv.po b/debian/po/sv.po
new file mode 100644
index 0000000..8a157de
--- /dev/null
+++ b/debian/po/sv.po
@@ -0,0 +1,82 @@
+# Swedish translation for ucf.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the ucf package.
+# Daniel Nylander <po@xxxxxxxxxxxxxxxxx>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf 2.002\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-06-25 10:07+0100\n"
+"Last-Translator: Daniel Nylander <po@xxxxxxxxxxxxxxxxx>\n"
+"Language-Team: Swedish <debian-l10n-swedish@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "installera paketansvariges version"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "behåll den lokalt installerade version"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "visa skillnaderna mellan versionerna"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "visa skillnaderna sida vid sida mellan versionerna"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "visa en 3-vägs skillnad mellan tillgängliga versioner"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "gör en 3-vägs sammanslagning mellan versionerna (experimentell)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "starta ett nytt skal för att undersöka situationen"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Vad vill du göra med ${BASENAME}?"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"En ny version av filen /boot/grub/menu.lst finns tillgänglig, men versionen "
+"som är installerad har ändrats lokalt."
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
new file mode 100644
index 0000000..f0b056a
--- /dev/null
+++ b/debian/po/templates.pot
@@ -0,0 +1,80 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr ""
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr ""
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr ""
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr ""
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr ""
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr ""
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
diff --git a/debian/po/vi.po b/debian/po/vi.po
new file mode 100644
index 0000000..a815be9
--- /dev/null
+++ b/debian/po/vi.po
@@ -0,0 +1,91 @@
+# Vietnamese translation for UCF.
+# Copyright © 2007 Free Software Foundation, Inc.
+# Clytie Siddall <clytie@xxxxxxxxxxxxxxxx>, 2005-2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ucf 3.002\n"
+"Report-Msgid-Bugs-To: Source: grub@xxxxxxxxxxxxxxxxxxx\n"
+"POT-Creation-Date: 2008-01-28 08:38-0800\n"
+"PO-Revision-Date: 2007-06-21 17:52+0930\n"
+"Last-Translator: Clytie Siddall <clytie@xxxxxxxxxxxxxxxx>\n"
+"Language-Team: Vietnamese <vi-VN@xxxxxxxxxxxxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: LocFactoryEditor 1.6.4a1\n"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "install the package maintainer's version"
+msgstr "cài đặt phiên bản của nhà duy trì gói"
+
+# msgid "keep your currently-installed version"
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "keep the local version currently installed"
+msgstr "giữ phiên bản cục bộ đã cài đặt hiện thời"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show the differences between the versions"
+msgstr "hiển thị khác biệt giữa những phiên bản"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a side-by-side difference between the versions"
+msgstr "hiển thị khác biệt cạnh nhau giữa những phiên bản"
+
+# msgid "show a 3 way difference between available versions of the file"
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "show a 3-way difference between available versions"
+msgstr "hiển thị khác biệt ba hướng giữa những phiên bản sẵn sàng"
+
+# msgid ""
+# do a 3 way merge between available versions of the file [Very 
+# Experimental]
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "do a 3-way merge between available versions (experimental)"
+msgstr "trộn ba hướng những phiên bản sẵn sàng (thực nghiệm)"
+
+#. Type: select
+#. Choices
+#. Translators, please keep translations *short* (less than 65 columns)
+#: ../grub.templates:1001
+msgid "start a new shell to examine the situation"
+msgstr "khởi chạy trình bao mới để khám xét trường hợp"
+
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+msgid "What would you like to do about ${BASENAME}?"
+msgstr "Đối với ${BASENAME}? muốn làm gì vậy?"
+
+# msgid ""
+# A new version of configuration file ${FILE} is available, but your 
+# version has been locally modified.
+#. Type: select
+#. Description
+#: ../grub.templates:1002
+#, fuzzy
+msgid ""
+"A new version of /boot/grub/menu.lst is available, but the version installed "
+"currently has been locally modified."
+msgstr ""
+"Có sẵn một phiên bản mới của tập tin cấu hình /boot/grub/menu.lst, nhưng "
+"phiên bản được cài đặt hiện thời đã bị sửa đổi cục bộ."
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..3e03fed
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,23 @@
+#!/usr/bin/make -f
+INIT_SYSTEM ?= systemd
+export PYBUILD_INSTALL_ARGS=--init-system=$(INIT_SYSTEM)
+
+%:
+	dh $@ --with python3,systemd --buildsystem pybuild
+
+override_dh_auto_test:
+ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+	http_proxy= make PYVER=python3 check
+else
+	@echo check disabled by DEB_BUILD_OPTIONS=$(DEB_BUILD_OPTIONS)
+endif
+
+override_dh_systemd_start:
+	dh_systemd_start --no-restart-on-upgrade --no-start
+
+override_dh_auto_install:
+	dh_auto_install --destdir=debian/cloud-init
+	install -D -m 0644 ./tools/21-cloudinit.conf debian/cloud-init/etc/rsyslog.d/21-cloudinit.conf
+	install -D ./tools/Z99-cloud-locale-test.sh debian/cloud-init/etc/profile.d/Z99-cloud-locale-test.sh
+	install -D ./tools/Z99-cloudinit-warnings.sh debian/cloud-init/etc/profile.d/Z99-cloudinit-warnings.sh
+	install -m 0644 -D debian/apport-launcher.py debian/cloud-init/usr/share/apport/package-hooks/cloud-init.py
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/update-grub-legacy-ec2 b/debian/update-grub-legacy-ec2
new file mode 100755
index 0000000..fb44b6e
--- /dev/null
+++ b/debian/update-grub-legacy-ec2
@@ -0,0 +1,1619 @@
+#!/bin/bash
+#
+# Insert a list of installed kernels in a grub config file
+#   Copyright 2001 Wichert Akkerman <wichert@xxxxxxxxx>
+#   Copyright 2007, 2008 Canonical Ltd.
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# Contributors:
+#	Jason Thomas <jason@xxxxxxxxxx>
+#	David B.Harris <dbarclay10@xxxxxxxx>
+#	Marc Haber <mh@xxxxxxxxxxxx>
+#	Crispin Flowerday <crispin@xxxxxxxx>
+#	Steve Langasek <steve.langasek@xxxxxxxxxxxxx>
+
+# Abort on errors
+set -e
+
+# load debconf first, since this re-execs the script
+. /usr/share/debconf/confmodule
+
+host_os=`uname -s | tr '[A-Z]' '[a-z]'`
+
+abort() {
+	message=$@
+
+	echo >&2
+	printf '%s\n' "$message" >&2
+	echo >&2
+	exit 1
+}
+
+find_grub_dir ()
+{
+	echo  -n "Searching for GRUB installation directory ... " >&2
+
+	for d in $grub_dirs ; do
+		if [ -d "$d" ] ; then
+			grub_dir="$d"
+			break
+		fi
+	done
+	
+	if [ -z "$grub_dir" ] ; then
+		abort "No GRUB directory found.
+ To create a template run 'mkdir /boot/grub' first.
+ To install grub, install it manually or try the 'grub-install' command.
+ ### Warning, grub-install is used to change your MBR. ###"
+	else
+		echo "found: $grub_dir" >&2
+	fi
+
+	echo $grub_dir
+}
+
+find_device ()
+{
+	mount_point=$1
+
+	# Autodetect current root device
+	device=
+	if [ -f /etc/fstab ] ; then
+		device=$(awk '$1!~/^#/{
+		  if ($2 ~ "^/+$") { $2 = "/"; } else { sub("/*$", "", $2); }
+		  if ($2 == "'"$mount_point"'"){
+				print $1;
+			}
+		  }' /etc/fstab | tail -n 1)
+	fi
+
+	if [ -n "$device" ] ; then
+		case "$device" in
+			LABEL=* | UUID=*)
+				device=`readlink -f "$(findfs $device)"`
+			;;
+			*)
+				device=`readlink -f "$device"`
+			;;
+		esac
+	fi
+
+	echo $device
+}
+
+find_root_device ()
+{
+	device=$(find_device "/")
+
+	if [ -z "$device" ]; then
+		echo "Cannot determine root device.  Assuming /dev/hda1" >&2
+		echo "This error is probably caused by an invalid /etc/fstab" >&2
+		device=/dev/hda1
+	fi
+
+	echo $device
+}
+
+# Usage: convert_raid1 os_device
+# Checks if os_device is a software raid1.
+# If so, converts to first physical device in array.
+convert_raid1 ()
+{
+    case $1 in
+        /dev/md[0-9])
+            : ;; # Continue
+        *)
+            return 1 ;;
+    esac
+
+    [ -x /sbin/mdadm ] || return 1
+
+    # Check that the raid device is raid1
+    raidlevel=$(mdadm -D -b $1 | grep "^ARRAY" | \
+            sed "s/^.*level=//" | cut -d" " -f1)
+    [ "$raidlevel" = "raid1" ] || return 1
+    
+    # Take only the first device that makes up the raid
+    raiddev=$(mdadm -D $1 | grep -A1 "Number" | grep "dev" \
+                          | sed "s/^.*\(\/dev\/.*\)$/\1/")
+    [ -n "$raiddev" ] || return 1
+
+    echo $raiddev
+    return 0
+}
+
+# Usage: convert os_device
+# Convert an OS device to the corresponding GRUB drive.
+# This part is OS-specific.
+convert () {
+    # First, check if the device file exists.
+    if test -e "$1"; then
+		:
+    else
+		echo "$1: Not found or not a block device." 1>&2
+		exit 1
+    fi
+
+	host_os=`uname -s | tr '[[:upper:]]' '[[:lower:]]'`
+
+    # Break the device name into the disk part and the partition part.
+    case "$host_os" in
+    linux)
+		tmp_disk=`echo "$1" | sed -e 's%\([sh]d[[:lower:]]\)[0-9]*$%\1%' \
+				  -e 's%\(fd[0-9]*\)$%\1%' \
+				  -e 's%/part[0-9]*$%/disc%' \
+				  -e 's%\(c[0-7]d[0-9]*\).*$%\1%'`
+		tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[[:lower:]]\([0-9]*\)$%\1%' \
+				  -e 's%.*/fd[0-9]*$%%' \
+				  -e 's%.*/floppy/[0-9]*$%%' \
+				  -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
+				  -e 's%.*c[0-7]d[0-9]*p*%%'`
+	;;
+    gnu)
+		tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'`
+		tmp_part=`echo "$1" | sed "s%$tmp_disk%%"` ;;
+    freebsd|*/kfreebsd)
+		tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([saw]d[0-9]*\).*$%\1%' \
+			    | sed 's%r\{0,1\}\(da[0-9]*\).*$%\1%'`
+		tmp_part=`echo "$1" \
+	    		| sed "s%.*/r\{0,1\}[saw]d[0-9]\(s[0-9]*[a-h]\)%\1%" \
+       	    	| sed "s%.*/r\{0,1\}da[0-9]\(s[0-9]*[a-h]\)%\1%"`
+	;;
+    netbsd|*/knetbsd)
+		tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([sw]d[0-9]*\).*$%r\1d%' \
+	    		| sed 's%r\{0,1\}\(fd[0-9]*\).*$%r\1a%'`
+		tmp_part=`echo "$1" \
+	    		| sed "s%.*/r\{0,1\}[sw]d[0-9]\([abe-p]\)%\1%"`
+	;;
+    *)
+		echo "update-grub does not support your OS yet." 1>&2
+		exit 1 ;;
+    esac
+
+    # Get the drive name.
+    tmp_drive=`grep -v '^#' $device_map | grep "$tmp_disk *$" \
+			| sed 's%.*\(([hf]d[0-9][a-z0-9,]*)\).*%\1%'`
+
+    # If not found, print an error message and exit.
+    if test "x$tmp_drive" = x; then
+		echo "$1 does not have any corresponding BIOS drive." 1>&2
+		exit 1
+    fi
+
+    if test "x$tmp_part" != x; then
+		# If a partition is specified, we need to translate it into the
+		# GRUB's syntax.
+		case "$host_os" in
+		linux)
+	    	  echo "$tmp_drive" | sed "s%)$%,`expr $tmp_part - 1`)%" ;;
+		gnu)
+	    	  if echo $tmp_part | grep "^s" >/dev/null; then
+				tmp_pc_slice=`echo $tmp_part \
+		    		| sed "s%s\([0-9]*\)[a-z]*$%\1%"`
+				tmp_drive=`echo "$tmp_drive" \
+		    		| sed "s%)%,\`expr "$tmp_pc_slice" - 1\`)%"`
+	    	  fi
+	    	  if echo $tmp_part | grep "[a-z]$" >/dev/null; then
+				tmp_bsd_partition=`echo "$tmp_part" \
+		    		| sed "s%[^a-z]*\([a-z]\)$%\1%"`
+				tmp_drive=`echo "$tmp_drive" \
+		    		| sed "s%)%,$tmp_bsd_partition)%"`
+	    	  fi
+	    	  echo "$tmp_drive" ;;
+		freebsd|*/kfreebsd)
+	    	  if echo $tmp_part | grep "^s" >/dev/null; then
+				tmp_pc_slice=`echo $tmp_part \
+		    		| sed "s%s\([0-9]*\)[a-h]*$%\1%"`
+				tmp_drive=`echo "$tmp_drive" \
+		    		| sed "s%)%,\`expr "$tmp_pc_slice" - 1\`)%"`
+	    	  fi
+	    	  if echo $tmp_part | grep "[a-h]$" >/dev/null; then
+				tmp_bsd_partition=`echo "$tmp_part" \
+		    		| sed "s%s\{0,1\}[0-9]*\([a-h]\)$%\1%"`
+				tmp_drive=`echo "$tmp_drive" \
+		    		| sed "s%)%,$tmp_bsd_partition)%"`
+	    	  fi
+	    	  echo "$tmp_drive" ;;
+		netbsd|*/knetbsd)
+	    	  if echo $tmp_part | grep "^[abe-p]$" >/dev/null; then
+				tmp_bsd_partition=`echo "$tmp_part" \
+		    		| sed "s%\([a-p]\)$%\1%"`
+				tmp_drive=`echo "$tmp_drive" \
+		    		| sed "s%)%,$tmp_bsd_partition)%"`
+	    	  fi
+	    	  echo "$tmp_drive" ;;
+		esac
+    else
+		# If no partition is specified, just print the drive name.
+		echo "$tmp_drive"
+    fi
+}
+
+# Usage: convert_default os_device
+# Convert an OS device to the corresponding GRUB drive.
+# Calls OS-specific convert, and returns a default of
+# (hd0,0) if anything goes wrong
+convert_default () {
+	# Check if device is software raid1 array
+	if tmp_dev=$(convert_raid1 $1 2>/dev/null) ; then
+		: # Use device returned by convert_raid1
+	else
+		tmp_dev=$1
+	fi
+
+	if tmp=$(convert $tmp_dev 2>/dev/null) ; then
+		echo $tmp
+	else
+		echo "${grub_root_device_fallback}"
+	fi
+}
+
+is_removable () {
+	removabledevice="$(echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' -e 's%\(fd[0-9]*\)$%\1%' -e 's%/part[0-9]*$%/disc%' -e 's%\(c[0-7]d[0-9]*\).*$%\1%' -e 's%^/dev/%%g')"
+        if [ -e "/sys/block/$removabledevice/removable" ]; then
+                if [ "$(cat /sys/block/$removabledevice/removable)" != "0" ]; then
+                        echo "/dev/$removabledevice"
+                        return
+                fi
+        fi
+	echo ""
+}
+
+convert_to_uuid()
+{
+	local dev; dev=$1
+
+	convert=false
+	case "$dev" in
+		/dev/disk/*)
+			;;
+		/dev/mapper/*)
+			;;
+		/dev/evms/[hs]d[a-z][0-9]*)
+			convert=:
+			;;
+		/dev/evms/*)
+			;;
+		/dev/md[0-9]*)
+			;;
+		/dev/*)
+			convert=:
+			;;
+	esac
+	if $convert; then
+		if [ -b "$dev" ]; then
+			uuid=$(blkid -o value -s UUID "$dev" || true)
+		fi
+	fi
+
+	echo "$uuid"
+}
+
+convert_kopt_to_uuid()
+{
+	local kopt; kopt=$1
+
+	convert=false
+	root=$(echo "$kopt" | sed 's/.*root=//;s/ .*//')
+	case "$root" in
+		UUID=*|LABEL=*)
+			;;
+		/dev/disk/*)
+			;;
+		/dev/mapper/*)
+			;;
+		/dev/evms/[hs]d[a-z][0-9]*)
+			convert=:
+			;;
+		/dev/evms/*)
+			;;
+		/dev/md[0-9]*)
+			;;
+		/dev/*)
+			convert=:
+			;;
+	esac
+	if $convert; then
+		if [ -L "$DEV" ] && readlink "$DEV" | grep -q "^/dev/mapper/"
+		then
+			:
+		elif [ -b "$root" ]; then
+			uuid=$(blkid -o value -s UUID "$root" || true)
+			if [ -n "$uuid" ]; then
+				kopt=$(echo "$kopt" | sed "s/\(.*root=\)[^ ]*/\1UUID=$uuid/")
+			fi
+		fi
+	fi
+
+	echo "$kopt"
+}
+
+
+## Configuration Options
+# directory's to look for the grub installation and the menu file
+grub_dirs="/boot/grub /boot/boot/grub"
+
+# The grub installation directory
+grub_dir=$(find_grub_dir)
+
+# Full path to the menu.lst
+menu_file_basename=menu.lst
+menu_file=$grub_dir/$menu_file_basename
+
+# Full path to the menu.lst fragment used for ucf management
+ucf_menu_file=/var/run/grub/$menu_file_basename
+
+# Full path to the default file
+default_file_basename=default
+default_file=$grub_dir/$default_file_basename
+
+# the device for the / filesystem
+root_device=$(find_root_device)
+
+# the device for the /boot filesystem
+boot_device=$(find_device "/boot")
+
+# Full path to the device.map
+device_map=$grub_dir/device.map
+
+# Default kernel options, overidden by the kopt statement in the menufile.
+loop_file=""
+if [ -f /etc/fstab ]; then
+   loop_file=$(awk '$2=="/" && $4~"loop" {print $1}' /etc/fstab)
+fi
+if [ -n "$loop_file" ]; then
+	dev_mountpoint=$(awk '"'${loop_file}'"~"^"$2 && $2!="/" {print $1";"$2}' /proc/mounts|tail -n 1)
+	host_device="${dev_mountpoint%;*}"
+	host_mountpoint="${dev_mountpoint#*;}"
+fi
+if [ -n "$host_device" ]; then
+	boot_device=
+	root_device="$host_device"
+	default_kopt="root=$host_device loop=${loop_file#$host_mountpoint} ro"
+else
+	default_kopt="root=$root_device ro"
+fi
+default_kopt="$(convert_kopt_to_uuid "$default_kopt")"
+kopt="$default_kopt"
+
+# Title
+title=$(lsb_release --short --description 2>/dev/null) || title="Ubuntu"
+
+# should update-grub remember the default entry
+updatedefaultentry="false"
+
+# Drive(in GRUB terms) where the kernel is located. Overridden by the
+# kopt statement in menufile.
+# if we don't have a device.map then we can't use the convert function.
+
+# Try to use a UUID instead of the GRUB device name.
+if test -z "$boot_device" ; then
+	uuid=$(convert_to_uuid "$root_device")
+else
+	uuid=$(convert_to_uuid "$boot_device")
+fi
+
+#if [ -n "$uuid" ]; then
+#	grub_root_device="$uuid"
+#fi
+## The ec2 provide pv-grub do not support 'uuid' so we have to use a grub name
+## when presented to grub, the root filesystem is on what grub sees
+## as a bare disk (hd0), rather than what we see it as in user space (sda1).
+grub_root_device_fallback="(hd0)"
+grub_root_device="${grub_root_device_fallback}"
+
+check_removable=""
+if true; then
+	if test -f "$device_map"; then
+		if test -z "$boot_device" ; then
+			grub_root_device=$(convert_default "$root_device")
+			check_removable="$(is_removable "$root_device")"
+		else
+			grub_root_device=$(convert_default "$boot_device")
+			check_removable="$(is_removable "$boot_device")"
+		fi
+	else
+		grub_root_device="${grub_root_device_fallback}"
+	fi
+fi
+
+# If the root/boot device is on a removable target, we need to override
+# the grub_root_device to (hd0,X). This is a requirement since the BIOS
+# will change device mapping dynamically if we switch boot device.
+
+if test -n "$check_removable" ; then
+	grub_root_device="$(echo "$grub_root_device" | sed -e 's/d.*,/d0,/g')"
+fi
+
+# should grub create the alternative boot options in the menu
+	alternative="true"
+
+# should grub lock the alternative boot options in the menu
+	lockalternative="false"
+
+# additional options to use with the default boot option, but not with the
+# alternatives
+	defoptions="console=hvc0"
+
+# should grub lock the old kernels
+	lockold="false"
+
+# Xen hypervisor options to use with the default Xen boot option
+	xenhopt=""
+
+# Xen Linux kernel options to use with the default Xen boot option
+	xenkopt="console=tty0"
+
+# options to use with the alternative boot options
+	altoptions="(recovery mode) single"
+
+# controls howmany kernels are listed in the config file,
+# this does not include the alternative kernels
+	howmany="all"
+
+# should grub create a memtest86 entry
+	memtest86="true"
+
+# should grub add "savedefault" to default boot options
+	savedefault="false"
+
+# is grub running in a domU?
+	indomU="true"
+
+# stores the command line arguments
+	command_line_arguments=$1
+
+# does this version of grub support the quiet option?
+if [ -f ${grub_dir}/installed-version ] && dpkg --compare-versions `cat ${grub_dir}/installed-version` ge 0.97-11ubuntu4; then
+    supports_quiet=true
+else
+    supports_quiet=false
+fi
+
+# read user configuration
+if test -f "/etc/default/grub" ; then
+    . /etc/default/grub
+fi
+
+# Default options to use in a new config file. This will only be used if $menu_file
+# doesn't already exist. Only edit the lines between the two "EOF"s. The others are
+# part of the script.
+newtemplate=$(tempfile)
+cat >> "$newtemplate" <<EOF
+# $menu_file_basename - See: grub(8), info grub, update-grub(8)
+#            grub-install(8), grub-floppy(8),
+#            grub-md5-crypt, /usr/share/doc/grub
+#            and /usr/share/doc/grub-legacy-doc/.
+
+## default num
+# Set the default entry to the entry number NUM. Numbering starts from 0, and
+# the entry number 0 is the default if the command is not used.
+#
+# You can specify 'saved' instead of a number. In this case, the default entry
+# is the entry saved with the command 'savedefault'.
+# WARNING: If you are using dmraid do not use 'savedefault' or your
+# array will desync and will not let you boot your system.
+default		0
+
+## timeout sec
+# Set a timeout, in SEC seconds, before automatically booting the default entry
+# (normally the first entry defined).
+# on ec2, with no console access, there is no reason for a timeout.  set to 0.
+timeout		0
+
+## hiddenmenu
+# Hides the menu by default (press ESC to see the menu)
+hiddenmenu
+
+# Pretty colours
+#color cyan/blue white/blue
+
+## password ['--md5'] passwd
+# If used in the first section of a menu file, disable all interactive editing
+# control (menu entry editor and command-line)  and entries protected by the
+# command 'lock'
+# e.g. password topsecret
+#      password --md5 \$1\$gLhU0/\$aW78kHK1QfV3P2b2znUoe/
+# password topsecret
+
+#
+# examples
+#
+# title		Windows 95/98/NT/2000
+# root		(hd0,0)
+# makeactive
+# chainloader	+1
+#
+# title		Linux
+# root		(hd0,1)
+# kernel	/vmlinuz root=/dev/hda2 ro
+#
+
+#
+# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST
+
+EOF
+## End Configuration Options
+
+echo -n "Searching for default file ... " >&2
+if [ -f "$default_file" ] ; then
+  echo "found: $default_file" >&2
+else
+  echo "Generating $default_file file and setting the default boot entry to 0" >&2
+  grub-set-default 0
+fi
+
+# Make sure we use the standard sorting order
+LC_COLLATE=C
+# Magic markers we use
+start="### BEGIN AUTOMAGIC KERNELS LIST"
+end="### END DEBIAN AUTOMAGIC KERNELS LIST"
+
+startopt="## ## Start Default Options ##"
+endopt="## ## End Default Options ##"
+
+# path to grub2
+grub2name="/boot/grub/core.img"
+
+# Extract options from config file
+ExtractMenuOpt()
+{
+	opt=$1
+
+	sed -ne "/^$start\$/,/^$end\$/ {
+		/^$startopt\$/,/^$endopt\$/ {
+			/^# $opt=/ {
+				s/^# $opt=\(.*\)\$/\1/
+				p
+			}
+		}
+	}" $menu
+}
+
+GetMenuOpts()
+{
+	opt=$1
+
+	sed -ne "/^$start\$/,/^$end\$/ {
+		/^$startopt\$/,/^$endopt\$/ {
+			/^# $opt=/ {
+				p
+			}
+		}
+	}" $menu
+}
+
+ExtractMenuOpts()
+{
+	opt=$1
+
+	GetMenuOpts $opt | sed "s/^# $opt=\(.*\)\$/\1=\"\2\"/"
+}
+
+GetMenuOpt()
+{
+	opt=$1
+	value=$2
+
+	[ -z "$(GetMenuOpts "$opt")" ] || value=$(ExtractMenuOpt "$opt")
+
+	echo $value
+}
+
+# Compares two version strings A and B
+# Returns -1 if A<B
+#          0 if A==B
+#          1 if A>B
+# This compares version numbers of the form
+# 2.4.14.2 > 2.4.14
+# 2.4.14random = 2.4.14-random > 2.4.14-ac10 > 2.4.14 > 2.4.14-pre2 > 
+# 2.4.14-pre1 > 2.4.13-ac99
+CompareVersions()
+{  
+    	#Changes the line something-x.y.z into somthing-x.y.z.q
+	#This is to ensure that kernels with a .q is treated as higher than the ones without               
+        #First a space is put after the version number
+        v1=$(echo $1 | sed -e 's!^\(.*-\([0-9]\+\.\)\{2,3\}[0-9]\+\)\(.*\)!\1 \3!g')
+	v2=$(echo $2 | sed -e 's!^\(.*-\([0-9]\+\.\)\{2,3\}[0-9]\+\)\(.*\)!\1 \3!g')
+	#If the version number only has 3 digits then put in another .0
+        v1=$(echo $v1 | sed -e 's!^\(.*-\([0-9]\+\.\)\{2\}[0-9]\+\)\( .*\|$\)!\1.0 \3!g')
+        v2=$(echo $v2 | sed -e 's!^\(.*-\([0-9]\+\.\)\{2\}[0-9]\+\)\( .*\|$\)!\1.0 \3!g')
+          
+	# Then split the version number and remove any '.' 's or dashes
+	v1=$(echo $v1 | sed -e 's![-\.]\+! !g' -e 's!\([0-9]\)\([[:alpha:]]\)!\1 \2!')
+	v2=$(echo $v2 | sed -e 's![-\.]\+! !g' -e 's!\([0-9]\)\([[:alpha:]]\)!\1 \2!')
+
+	# we weight different kernel suffixes here
+	# ac   = 50
+	# pre  = -50
+	# rc   = -40
+	# test = -60
+	# others are given 99
+	v1=$(echo $v1 | sed -e 's! k7! 786 !g' -e 's! ac! 50 !g' -e 's! rc! -40 !g' -e 's! pre! -50 !g' -e 's! test! -60 !g' -e 's![^ ]*[^-0-9 ][^ ]*!99!g')
+
+	v2=$(echo $v2 | sed -e 's! k7! 786 !g' -e 's! ac! 50 !g' -e 's! rc! -40 !g' -e 's! pre! -50 !g' -e 's! test! -60 !g' -e 's![^ ]*[^-0-9 ][^ ]*!99!g')
+
+	result=0; v1finished=0; v2finished=0;
+	while [ $result -eq 0 ] && [ $v1finished -eq 0 ] && [ $v2finished -eq 0 ];
+	do
+		if [ "$v1" = "" ]; then
+			v1comp=0; v1finished=1
+		else
+			set -- $v1; v1comp=$1; shift; v1=$*
+		fi
+
+		if [ "$v2" = "" ]; then
+			v2comp=0; v2finished=1
+		else
+			set -- $v2; v2comp=$1; shift; v2=$*
+		fi
+		
+		set +e
+		result=`expr $v1comp - $v2comp` 
+		result=`expr substr $result 1 2`
+		set -e
+
+		if   [ $result -gt 0 ]; then result=1
+		elif [ $result -lt 0 ]; then result=-1	
+		fi	
+	done
+
+	# finally return the result
+	echo $result
+}
+
+# looks in the directory specified for an initrd image with the version specified
+FindInitrdName()
+{
+	# strip trailing slashes
+	directory=$(echo $1 | sed -e 's#/*$##')
+	version=$2
+
+	# initrd
+	# initrd.img
+	# initrd-lvm
+	# .*.gz
+
+	initrdName=""
+	names="initrd initrd.img initrd-lvm"
+	compressed="gz"
+
+	for n in $names ; do
+		# make sure we haven't already found it
+		if [ -z "$initrdName" ] ; then
+			if [ -f "$directory/$n$version" ] ; then
+				initrdName="$n$version"
+				break
+			else
+				for c in $compressed ; do
+					if [ -f "$directory/$n$version.$c" ] ; then
+						initrdName="$n$version.$c"
+						break
+					fi
+				done
+			fi
+		else
+			break
+		fi
+	done
+
+	# return the result
+	echo $initrdName
+}
+
+FindXenHypervisorVersions ()
+{
+	version=$1
+
+	if [ -f "/var/lib/linux-image-$version/xen-versions" ]; then
+		ret="$(cat /var/lib/linux-image-$version/xen-versions)"
+	fi
+
+	echo $ret
+}
+
+get_kernel_opt()
+{
+	kernel_version=$1
+
+	version=$(echo $kernel_version | sed 's/^[^0-9]*//')
+	version=$(echo $version | sed 's/[-\+\.]/_/g')
+	if [ -n "$version" ] ; then
+		while [ -n "$version" ] ; do
+			currentOpt="$(eval "echo \${kopt_$version}")"
+			if [ -n "$currentOpt" ] ; then
+				break
+			fi
+
+			oldversion="$version"
+			version=$(echo $version | sed 's/_\?[^_]*$//')
+			if [ "$version" = "$oldversion" ] ; then
+				# Break infinite loop, if the version isn't what we expect
+				break
+			fi
+		done
+	fi
+
+	if [ -z "$currentOpt" ] ; then
+			currentOpt=$kopt
+	fi
+
+	echo $currentOpt
+}
+
+write_kernel_entry()
+{
+	local kernel_version; kernel_version=$1; shift
+	local recovery_desc; recovery_desc=$1; shift
+	local lock_alternative; lock_alternative=$1; shift
+	local grub_root_device; grub_root_device=$1; shift
+	local kernel; kernel=$1; shift
+	local kernel_options; kernel_options=$1; shift
+	local recovery_suffix; recovery_suffix=$1; shift
+	local initrd; initrd=$1; shift
+	local savedefault; savedefault=$1; shift
+	local lockold; lockold=$1; shift
+	local dapper_upgrade; dapper_upgrade=$1; shift
+	local hypervisor
+	if [ -n "$1" ]; then
+		# Hypervisor.
+		hypervisor=$1; shift
+		local hypervisor_image; hypervisor_image=$1; shift
+		local hypervisor_version; hypervisor_version=$1; shift
+		local hypervisor_options; hypervisor_options=$1; shift
+	fi
+
+	echo -n "title		" >> $buffer
+
+	if [ -n "$hypervisor" ]; then
+		echo -n "$hypervisor $hypervisor_version / " >> $buffer
+	fi
+
+	echo -n "$title" >> $buffer
+	if [ -n "$kernel_version" ]; then
+		echo -n ", " >> $buffer
+		# memtest86 is not strictly a kernel
+		if ! echo "$kernel_version" | grep -q ^memtest86; then
+			echo -n "kernel " >> $buffer
+		fi
+		echo -n "$kernel_version" >> $buffer
+	fi
+	if [ -n "$recovery_desc" ]; then
+		echo -n " $recovery_desc" >> $buffer
+	fi
+	echo >> $buffer
+
+	# lock the alternative options
+	if test x"$lock_alternative" = x"true" ; then
+		echo "lock" >> $buffer
+	fi
+	# lock the old entries
+	if test x"$lockold" = x"true" ; then
+	echo "lock" >> $buffer
+	fi
+
+	case "$grub_root_device" in
+		[^A-Za-z0-9]*)
+			echo "root		$grub_root_device" >> $buffer
+		;;
+		*)
+			echo "uuid		$grub_root_device" >> $buffer
+		;;
+	esac
+
+	echo -n "kernel		"  >> $buffer
+	if [ -n "$hypervisor" ]; then
+		echo -n "$hypervisor_image" >> $buffer
+		if [ -n "$hypervisor_options" ]; then
+			echo -n " $hypervisor_options"  >> $buffer
+		fi
+		echo >> $buffer
+		echo -n "module		"  >> $buffer
+	fi
+	echo -n "$kernel"  >> $buffer
+	if [ -n "$kernel_options" ]; then
+		echo -n " $kernel_options"  >> $buffer
+	fi
+	if [ -n "$recovery_desc" ]; then
+		echo -n " $recovery_suffix"  >> $buffer
+	fi
+	if [ -n "$dapper_upgrade" -a -z "$kernel_options$recovery_desc" ]; then
+		echo -n " "  >> $buffer
+	fi
+	echo >> $buffer
+
+	if [ -n "$initrd" ]; then
+		if [ -n "$hypervisor" ]; then
+			echo -n "module		" >> $buffer
+		else
+			echo -n "initrd		" >> $buffer
+		fi
+		echo "$initrd" >> $buffer
+	fi
+
+	if [ ! -n "$recovery_desc" -a x"$supports_quiet" = x"true" -a -z "$dapper_upgrade" ]; then
+		echo "quiet" >> $buffer
+	fi
+
+	if test x"$savedefault" = x"true" ; then
+		echo "savedefault" >> $buffer
+	fi
+	if test x"$dapper_upgrade" != x ; then
+		echo "boot" >> $buffer
+	fi
+	echo >> $buffer
+}
+
+## write out the kernel entries
+output_kernel_list() {
+	counter=0
+
+	# Xen entries first.
+	for kern in $xenKernels ; do
+		if test ! x"$howmany" = x"all" ; then
+			if [ $counter -gt $howmany ] ; then
+				break
+			fi
+		fi
+
+		kernelName=$(basename $kern)
+		kernelVersion=$(echo $kernelName | sed -e 's/vmlinuz//')
+
+		initrdName=$(FindInitrdName "/boot" "$kernelVersion")
+		initrd=""
+
+		kernel=$kernel_dir/$kernelName
+		if [ -n "$initrdName" ] ; then
+			initrd=$kernel_dir/$initrdName
+		fi
+
+		kernelVersion=$(echo $kernelVersion | sed -e 's/^-//')
+		currentOpt=$(get_kernel_opt $kernelVersion)
+
+		hypervisorVersions=$(FindXenHypervisorVersions "$kernelVersion")
+
+		found=
+		for hypervisorVersion in $hypervisorVersions; do
+			hypervisor="$kernel_dir/xen-$hypervisorVersion.gz"
+			if [ -e "$hypervisor" ]; then
+				found=1
+
+				echo "Found Xen hypervisor $hypervisorVersion,  kernel: $kernel" >&2
+
+				write_kernel_entry "$kernelVersion" '' '' "$grub_root_device" \
+				  "$kernel" "$currentOpt $xenkopt" '' "$initrd" "$savedefault" '' "$dapper_upgrade" \
+				  Xen "$hypervisor" "$hypervisorVersion" "$xenhopt"
+		        counter=$(($counter + 1))
+			fi
+		done
+
+		if [ -z $found ]; then
+			for hypervisor in $hypervisors; do
+				hypVersion=`basename "$hypervisor" .gz | sed s%xen-%%`
+		
+				echo "Found Xen hypervisor $hypVersion,  kernel: $kernel" >&2
+
+				write_kernel_entry "$kernelVersion" '' '' "$grub_root_device" \
+				  "$kernel" "$currentOpt $xenkopt" '' "$initrd" "$savedefault" '' "$dapper_upgrade" \
+				  Xen "$kernel_dir/$hypervisor" "$hypVersion" "$xenhopt"
+		        counter=$(($counter + 1))
+			done
+		fi
+	done
+
+	for kern in $sortedKernels ; do
+		counter=$(($counter + 1))
+		if test ! x"$howmany" = x"all" ; then
+			if [ $counter -gt $howmany ] ; then 
+				break
+			fi
+		fi
+		kernelName=$(basename $kern)
+		initrdName=""
+		initrd=""
+		extra_opts=""
+
+		if [ "$kern" = "/boot/last-good-boot/vmlinuz" ]; then
+			kernelVersion="Last successful boot"
+			if [ -e "/boot/last-good-boot/initrd.img" ]; then
+				initrdName="last-good-boot/initrd.img"
+			fi
+			kernelName="last-good-boot/vmlinuz"
+			extra_opts="$extra_opts last-good-boot"
+		else
+			kernelVersion=$(echo $kernelName | sed -e 's/vmlinuz//')
+			initrdName=$(FindInitrdName "/boot" "$kernelVersion")
+			if [ -x "/usr/bin/makedumpfile" ] && [ -x "/sbin/kexec" ]; then
+				extra_opts="$extra_opts crashkernel=384M-2G:64M,2G-:128M"
+			fi
+		fi
+
+		kernel=$kernel_dir/$kernelName
+
+		if [ -n "$initrdName" ] ; then
+			initrd=$kernel_dir/$initrdName
+		fi
+
+		echo "Found kernel: $kernel" >&2
+
+		if [ "$kernelName" = "vmlinuz" ]; then
+			if [ -L "/boot/$kernelName" ]; then
+				kernelVersion=`readlink -f "/boot/$kernelName"`
+				kernelVersion=$(echo $kernelVersion | sed -e 's/.*vmlinuz-//')
+				kernelVersion="$kernelVersion Default"
+			else
+				kernelVersion="Default"
+			fi
+		fi
+		if [ "$kernelName" = "vmlinuz.old" ]; then
+			if [ -L "/boot/$kernelName" ]; then
+				kernelVersion=`readlink -f "/boot/$kernelName"`
+				kernelVersion=$(echo $kernelVersion | sed -e 's/.*vmlinuz-//')
+				kernelVersion="$kernelVersion Previous"
+			else
+				kernelVersion="Previous"
+			fi
+		fi
+
+		kernelVersion=$(echo $kernelVersion | sed -e 's/^-//')
+
+		currentOpt=$(get_kernel_opt $kernelVersion)
+
+		do_lockold=$lockold
+		# do not lockold for the first entry
+		[ $counter -eq 1 ] && do_lockold=false
+
+		if [ "$kernelName" = "last-good-boot/vmlinuz" ]; then
+			if [ -e /boot/last-good-boot/cmdline ]; then
+				cmdline="$(cat /boot/last-good-boot/cmdline) last-good-boot"
+			else
+				cmdline="$currentOpt $defoptions $extra_opts"
+			fi
+			write_kernel_entry "$kernelVersion" "" "" "$grub_root_device" "$kernel" \
+				"$cmdline" "" "$initrd" "$savedefault" "$do_lockold" \
+				"$dapper_upgrade"
+		else
+			write_kernel_entry "$kernelVersion" "" "" "$grub_root_device" "$kernel" \
+				"$currentOpt $defoptions $extra_opts" "" "$initrd" "$savedefault" \
+				"$do_lockold" "$dapper_upgrade"
+		fi
+
+		# insert the alternative boot options
+		if test ! x"$alternative" = x"false" && \
+		   test ! x"$kernelName" = x"last-good-boot/vmlinuz"; then
+			# for each altoptions line do this stuff
+			sed -ne 's/# altoptions=\(.*\)/\1/p' $buffer | while read line; do
+				descr=$(echo $line | sed -ne 's/\(([^)]*)\)[[:space:]]\(.*\)/\1/p')
+				suffix=$(echo $line | sed -ne 's/\(([^)]*)\)[[:space:]]\(.*\)/\2/p')
+
+				test x"$lockalternative" = x"true" && do_lockold=false
+				write_kernel_entry "$kernelVersion" "$descr" "$lockalternative" \
+					"$grub_root_device" "$kernel" "$currentOpt $extra_opts" \
+					"$suffix" "$initrd" "false" "$do_lockold" \
+					"$dapper_upgrade"
+			done
+		fi
+	done
+
+## Adding the chainload stanza is simply confusing, and for
+## legacy ec2 grub, it will never be used. LP: #627451
+##
+#	if test -f $grub2name ; then
+#		echo "Found GRUB 2: $grub2name" >&2
+#		cat >> $buffer << EOF
+#title		Chainload into GRUB 2
+#root		$grub_root_device
+#kernel		$grub2name
+#EOF
+#		if test x"$savedefault" = x"true" ; then
+#			echo "savedefault" >> $buffer
+#		fi
+#		echo >> $buffer
+#	fi
+    
+	memtest86names="memtest86 memtest86+"
+
+	if test ! x"$memtest86" = x"false" ; then
+		for name in $memtest86names ; do
+			if test -f "/boot/$name.bin" ; then
+				kernelVersion="$name"
+				kernel="$kernel_dir/$name.bin"
+				currentOpt=
+				initrd=
+
+				echo "Found kernel: $kernel" >&2
+
+				write_kernel_entry "$kernelVersion" "" "" "$grub_root_device" \
+				"$kernel" "$currentOpt" "" "$initrd" "false" "" "$dapper_upgrade"
+			fi
+		done
+	fi
+
+	echo $end >> $buffer
+}
+
+ucf_update_kernels() {
+	local target; target="$1"
+	local buffer; buffer="$2"
+
+	sed -ni -e"/$endopt/,/$end/p" "$buffer"
+
+	if [ "x$initialconfig" = "x" ]; then
+		sed -n -e"/$endopt/,/$end/p" < $menu > $ucf_menu_file
+	else
+		cat $buffer > $ucf_menu_file
+	fi
+
+	db_x_loadtemplatefile "$(dpkg-query --control-path grub-legacy-ec2 templates)" grub
+
+	ucf --debconf-ok \
+		--debconf-template grub/update_grub_changeprompt_threeway \
+		--three-way "$buffer" $ucf_menu_file
+	rm "$buffer"
+
+	# now re-merge the ucf results with the target file
+	sed -i -e "/^$endopt/,/^$end/ {
+		/^$endopt/r $ucf_menu_file
+		d
+	}
+	" $target
+
+	rm -f $ucf_menu_file ${ucf_menu_file}.ucf-old
+}
+
+
+echo -n "Testing for an existing GRUB $menu_file_basename file ... " >&2
+
+# Test if our menu file exists
+if [ -f "$menu_file" ] ; then
+	menu="$menu_file"
+	rm -f $newtemplate
+	unset newtemplate
+	echo "found: $menu_file" >&2
+	cp -f "$menu_file" "$menu_file~"
+else
+	# if not ask user if they want us to create one
+	initialconfig=1
+	menu="$menu_file"
+	echo >&2
+	echo >&2
+	echo -n "Could not find $menu_file file. " >&2
+	if [ "-y" = "$command_line_arguments" ] ; then
+		echo >&2
+		echo "Generating $menu_file" >&2
+		answer=y
+	else
+		echo -n "Would you like $menu_file generated for you? " >&2
+		echo -n "(y/N) " >&2
+		read answer <&2
+	fi
+
+	case "$answer" in
+		y* | Y*)
+		cat "$newtemplate" > $menu_file
+		rm -f $newtemplate
+		unset newtemplate
+		;;
+		*)
+		abort "Not creating $menu_file as you wish"
+		;;
+	esac
+fi
+
+# Extract the kernel options to use
+kopt=$(GetMenuOpt "kopt" "$kopt")
+
+# Extract options for specific kernels
+opts="$(ExtractMenuOpts "\(kopt_[[:alnum:]_]\+\)")"
+test -z "$opts" || eval "$opts"
+CustomKopts=$(GetMenuOpts "\(kopt_[[:alnum:]_]\+\)" | \
+	grep -v "^# kopt_2_6=" || true)
+
+# Set the kernel 2.6 option only for fresh install (but convert it to
+# mount-by-UUID on upgrade)
+test -z "$kopt_2_6" && test -z "$(GetMenuOpt "kopt" "")" && \
+	kopt_2_6="$default_kopt"
+
+# Extract the grub root
+grub_root_device=$(GetMenuOpt "groot" "$grub_root_device")
+groot_cfg=$(GetMenuOpt groot "${grub_root_device_fallback}")
+case "${groot_cfg}" in
+	[^A-Za-z0-9]*) :;;
+	*) 
+		echo "uuid not supported. update 'groot' in ${menu_file}" >&2;
+		abort "groot must be grub root device (ie '(hd0)'). not '${groot_cfg}'" >&2;
+esac
+
+# Extract the old recovery value
+alternative=$(GetMenuOpt "recovery" "$alternative")
+
+# Extract the alternative value
+alternative=$(GetMenuOpt "alternative" "$alternative")
+
+# Extract the lockalternative value
+lockalternative=$(GetMenuOpt "lockalternative" "$lockalternative")
+
+# Extract the additional default options
+# Check nonaltoptions too for compatibility with Ubuntu <= 5.10
+defoptions=$(GetMenuOpt "nonaltoptions" "$defoptions")
+defoptions=$(GetMenuOpt "defoptions" "$defoptions")
+
+# Extract the lockold value
+lockold=$(GetMenuOpt "lockold" "$lockold")
+
+# Extract Xen hypervisor options
+xenhopt=$(GetMenuOpt "xenhopt" "$xenhopt")
+
+# Extract Xen Linux kernel options
+xenkopt=$(GetMenuOpt "xenkopt" "$xenkopt")
+
+# Extract the howmany value
+howmany=$(GetMenuOpt "howmany" "$howmany")
+
+# Extract the memtest86 value
+memtest86=$(GetMenuOpt "memtest86" "$memtest86")
+
+# Extract the indomU value
+indomU=$(GetMenuOpt "indomU" "$indomU")
+ 
+# Extract the updatedefaultentry option
+updatedefaultentry=$(GetMenuOpt "updatedefaultentry" "$updatedefaultentry")
+
+# If "default saved" is in use, set the default to true
+grep -q "^default.*saved" $menu && savedefault=true
+# Extract the savedefault option
+savedefault=$(GetMenuOpt "savedefault" "$savedefault")
+
+# Generate the menu options we want to insert
+buffer=$(tempfile)
+echo $start >> $buffer
+echo "## lines between the AUTOMAGIC KERNELS LIST markers will be modified" >> $buffer
+echo "## by the debian update-grub script except for the default options below" >> $buffer
+echo >> $buffer
+echo "## DO NOT UNCOMMENT THEM, Just edit them to your needs" >> $buffer
+echo >> $buffer
+echo "## ## Start Default Options ##" >> $buffer
+
+echo "## default kernel options" >> $buffer
+echo "## default kernel options for automagic boot options" >> $buffer
+echo "## If you want special options for specific kernels use kopt_x_y_z" >> $buffer
+echo "## where x.y.z is kernel version. Minor versions can be omitted." >> $buffer
+echo "## e.g. kopt=root=/dev/hda1 ro" >> $buffer
+echo "##      kopt_2_6_8=root=/dev/hdc1 ro" >> $buffer
+echo "##      kopt_2_6_8_2_686=root=/dev/hdc2 ro" >> $buffer
+echo "# kopt=$kopt" >> $buffer
+if [ -n "$kopt_2_6" ] && [ "$kopt" != "$kopt_2_6" ]; then
+    echo "# kopt_2_6=$kopt_2_6" >> $buffer
+fi
+if [ -n "$CustomKopts" ] ; then
+    echo "$CustomKopts" >> $buffer
+fi
+echo >> $buffer
+
+echo "## default grub root device" >> $buffer
+echo "## e.g. groot=${grub_root_device_fallback}" >> $buffer
+echo "# groot=$grub_root_device" >> $buffer
+echo >> $buffer
+
+echo "## should update-grub create alternative automagic boot options" >> $buffer
+echo "## e.g. alternative=true" >> $buffer
+echo "##      alternative=false" >> $buffer
+echo "# alternative=$alternative" >> $buffer
+echo >> $buffer
+
+echo "## should update-grub lock alternative automagic boot options" >> $buffer
+echo "## e.g. lockalternative=true" >> $buffer
+echo "##      lockalternative=false" >> $buffer
+echo "# lockalternative=$lockalternative" >> $buffer
+echo >> $buffer
+
+echo "## additional options to use with the default boot option, but not with the" >> $buffer
+echo "## alternatives" >> $buffer
+echo "## e.g. defoptions=vga=791 resume=/dev/hda5" >> $buffer
+echo "# defoptions=$defoptions" >> $buffer
+echo >> $buffer
+
+echo "## should update-grub lock old automagic boot options" >> $buffer
+echo "## e.g. lockold=false" >> $buffer
+echo "##      lockold=true" >> $buffer
+echo "# lockold=$lockold" >> $buffer
+echo >> $buffer
+
+echo "## Xen hypervisor options to use with the default Xen boot option" >> $buffer
+echo "# xenhopt=$xenhopt" >> $buffer
+echo >> $buffer
+
+echo "## Xen Linux kernel options to use with the default Xen boot option" >> $buffer
+echo "# xenkopt=$xenkopt" >> $buffer
+echo >> $buffer
+
+echo "## altoption boot targets option" >> $buffer
+echo "## multiple altoptions lines are allowed" >> $buffer
+echo "## e.g. altoptions=(extra menu suffix) extra boot options" >> $buffer
+echo "##      altoptions=(recovery) single" >> $buffer
+
+if ! grep -q "^# altoptions" $menu ; then
+	echo "# altoptions=$altoptions" >> $buffer
+else
+	grep "^# altoptions" $menu >> $buffer
+fi
+echo >> $buffer
+
+echo "## controls how many kernels should be put into the $menu_file_basename" >> $buffer
+echo "## only counts the first occurence of a kernel, not the" >> $buffer
+echo "## alternative kernel options" >> $buffer
+echo "## e.g. howmany=all" >> $buffer
+echo "##      howmany=7" >> $buffer
+echo "# howmany=$howmany" >> $buffer
+echo >> $buffer
+
+echo "## specify if running in Xen domU or have grub detect automatically" >> $buffer
+echo "## update-grub will ignore non-xen kernels when running in domU and vice versa" >> $buffer
+echo "## e.g. indomU=detect" >> $buffer
+echo "##      indomU=true" >> $buffer
+echo "##      indomU=false" >> $buffer
+echo "# indomU=$indomU" >> $buffer
+echo >> $buffer
+
+echo "## should update-grub create memtest86 boot option" >> $buffer
+echo "## e.g. memtest86=true" >> $buffer
+echo "##      memtest86=false" >> $buffer
+echo "# memtest86=$memtest86" >> $buffer
+echo >> $buffer
+
+echo "## should update-grub adjust the value of the default booted system" >> $buffer
+echo "## can be true or false" >> $buffer
+echo "# updatedefaultentry=$updatedefaultentry" >> $buffer
+echo >> $buffer
+
+echo "## should update-grub add savedefault to the default options" >> $buffer
+echo "## can be true or false" >> $buffer
+echo "# savedefault=$savedefault" >> $buffer
+echo >> $buffer
+
+echo "## ## End Default Options ##" >> $buffer
+echo >> $buffer
+
+echo -n "Searching for splash image ... " >&2
+current_splash=`grep '^splashimage=' ${menu_file} || true`
+splash_root_device=""
+splash_uuid=""
+case "$grub_root_device" in
+	[^A-Za-z0-9]*)
+		splash_root_device=${grub_root_device}
+	;;
+	*)
+		splash_uuid="uuid		$grub_root_device"
+	;;
+esac
+splashimage_path="splashimage=${splash_root_device}${grub_dir##${boot_device:+/boot}}/splash.xpm.gz"
+if [ `sed -e "/^$start/,/^$end/d" $menu_file | grep -c '^splashimage='` != "0" ] ; then
+       #checks for splashscreen defined outside the autoupdated part
+       splashimage=$(grep '^splashimage=' ${menu_file})
+       echo "found: ${splashimage##*=}" >&2
+       echo >&2  
+elif [ -f "${grub_dir}/splash.xpm.gz" ]  && [ "$current_splash" = "" ]; then
+       echo "found: /boot/grub/splash.xpm.gz" >&2
+       echo "$splash_uuid" >> $buffer
+       echo "$splashimage_path" >> $buffer
+       echo >> $buffer
+elif [ -f "${grub_dir}/splash.xpm.gz" ]  && [ "$current_splash" = "$splashimage_path" ]; then
+       echo "found: /boot/grub/splash.xpm.gz" >&2
+       echo "$splash_uuid" >> $buffer
+       echo "$splashimage_path" >> $buffer
+       echo >> $buffer
+elif [ "$current_splash" != "" ] && [ "$current_splash" != "$splashimage_path" ]; then
+       echo "found but preserving previous setting: $(grep '^splashimage=' ${menu_file})" >&2
+       echo "$splash_uuid" >> $buffer
+       echo "$current_splash" >> $buffer
+       echo >> $buffer
+else
+       echo "none found, skipping ..." >&2
+fi
+
+
+hypervisors=""
+for hyp in /boot/xen-*.gz; do
+    if [ ! -h "$hyp" ] && [ -f "$hyp" ]; then
+	hypervisors="$hypervisors `basename "$hyp"`"
+    fi
+done
+
+# figure out where grub looks for the kernels at boot time
+kernel_dir=/boot
+if [ -n "$boot_device" ] ; then
+	kernel_dir=
+fi
+
+
+# We need a static path to use for the ucf registration; since we're not
+# using the full menu.lst file (maybe we should, just copying it around?
+# C.f. discussion with Manoj), create a directory in a fixed location
+# even though we're not treating the file in that location as
+# persistent.
+mkdir -p /var/run/grub
+
+# The first time ucf sees the file, we can only assume any difference
+# between the magic comments and the kernel options is a result of local
+# mods, so this will result in a ucf prompt for anyone whose first
+# invocation of update-grub is as a result of updating the magic comments.
+if ! ucfq grub | grep -q $ucf_menu_file; then
+	otherbuffer=$(tempfile)
+	cat $buffer > $otherbuffer
+
+	sortedKernels=`sed -n -e "
+	/$endopt/,/$end/ {
+		s/^kernel[[:space:]]\+\([^[:space:]]\+\).*/\1/p
+	}" < $menu | grep -vE "memtest86|$grub2name|xen" | uniq`
+	xenKernels=`sed -n -e "
+	/$endopt/,/$end/ {
+		s/^module[[:space:]]\+\([^[:space:]]*vmlinuz[^[:space:]]\+\).*/\1/p
+	}" < $menu | uniq`
+
+	savebuffer="$buffer"
+	buffer="$otherbuffer"
+	savetitle="$title"
+	title="$(sed -n -e "/$endopt/,/$end/ {
+		s/^title[[:space:]]\+\(.*\),.*/\1/p
+	}" < $menu | head -n 1)"
+	if [ -z "$title" ]; then
+		title="$savetitle"
+	fi
+
+	# Hack: the kernel list output in Ubuntu 6.06 was different than
+	# in the current version, so to support smooth upgrades we need to
+	# properly detect a config generated by this old version of
+	# update-grub and mimic it for the initial ucf registration
+	dapper_upgrade=`sed -n -e "
+	/$endopt/,/$end/ {
+		/^boot/p
+	}" < $menu`
+	save_savedefault="$savedefault"
+	if [ -n "$dapper_upgrade" ]; then
+		savedefault=true
+	fi
+
+	output_kernel_list
+
+	savedefault="$save_savedefault"
+	dapper_upgrade=""
+	buffer="$savebuffer"
+	title="$savetitle"
+
+	ucf_update_kernels "$menu" "$otherbuffer"
+
+	# all done, now register it
+	ucfr grub $ucf_menu_file
+fi
+
+
+if ! type is_xen_kernel >/dev/null 2>&1; then
+  check_xen_config_for_kernel() {
+    # input is like /boot/vmlinuz-2.6.35-13-virtual
+    # expected config path is /boot/config-2.6.35-13-virtual
+    local kernel="$1" config="" dir="" bname=""
+    dir=${kernel%/*}
+    [ "$dir" = "$kernel" ] && dir="."
+    bname=${kernel##*/}
+    config="$dir/config-${bname#*-}"
+    [ -f "$config" ] || return 1
+    grep -q CONFIG_XEN=y "$config"
+  }
+
+  is_xen_kernel() {
+    # input is like /boot/vmlinuz-2.6.35-13-virtual
+    # return whether or not this kernel is xen bootable.
+    check_xen_config_for_kernel "$1" && return 0
+
+    # get the version string out of it.
+    local ver_flavor="";
+    ver_flavor="${1##*vmlinuz-}"
+
+    case "${ver_flavor}" in
+       *-ec2) return 0;;
+       *-virtual)
+         # 10.04 LTS through 12.04 LTS -virtual is the EC2/Xen kernel
+         dpkg --compare-versions ${ver_flavor%-virtual} gt 2.6.35-13 && return 0;;
+       *-generic)
+         # Starting with 12.10, -virtual was merged into -generic
+         dpkg --compare-versions ${ver_flavor%-generic} ge 3.4.0-3 && return 0;;
+    esac
+    return 1;
+  }
+fi
+
+for kern in /boot/vmlinuz-*; do
+  case "$kern" in
+    *.signed) continue;;
+  esac
+  is_xen_kernel "${kern}" &&
+    xen_verlist="${xen_verlist} ${kern#/boot/vmlinuz-}"
+done
+xen_verlist=${xen_verlist# }
+
+xenKernels=""
+for ver in ${xen_verlist}; do
+  # ver is a kernel version
+  kern="/boot/vmlinuz-$ver"
+  if [ -r $kern ] ; then
+       newerKernels=""
+       for i in $xenKernels ; do
+                res=$(CompareVersions "$kern" "$i")
+                if [ "$kern" != "" ] && [ "$res" -gt 0 ] ; then
+                        newerKernels="$newerKernels $kern $i"
+                        kern=""
+                else
+                        newerKernels="$newerKernels $i"
+                fi
+        done
+        if [ "$kern" != "" ] ; then
+                newerKernels="$newerKernels $kern"
+        fi
+        xenKernels="$newerKernels"
+    fi
+done
+xenKernels=" ${xenKernels} "
+
+if [ "$indomU" = "detect" ]; then
+    if [ -e /proc/xen/capabilities ] && ! grep -q "control_d" /proc/xen/capabilities; then
+        indomU="true"
+    else
+        indomU="false"
+    fi
+fi
+
+sortedKernels=""
+for kern in $(/bin/ls -1vr /boot | grep -v "dpkg-*" | grep "^vmlinuz-") ; do
+	if `echo "$xenKernels" | grep -q "$kern "` || `echo "$kern" | grep -q "xen"`; then
+		is_xen=1
+	else
+		is_xen=
+	fi
+
+    if [ "$indomU" = "false" ] && [ "$is_xen" ]; then
+        # We aren't running in a Xen domU, skip xen kernels
+        echo "Ignoring Xen kernel on non-Xen host: $kern"
+        continue
+    elif [ "$indomU" = "true" ] && ! [ "$is_xen" ]; then
+        # We are running in a Xen domU, skip non-xen kernels
+        echo "Ignoring non-Xen Kernel on Xen domU host: $kern"
+        continue
+    fi
+    
+    kern="/boot/$kern"
+	newerKernels=""
+	for i in $sortedKernels ; do
+	    res=$(CompareVersions "$kern" "$i")
+	    if [ "$kern" != "" ] && [ "$res" -gt 0 ] ; then
+		newerKernels="$newerKernels $kern $i"
+	 	kern=""
+	    else
+		newerKernels="$newerKernels $i"
+	    fi
+	done
+	if [ "$kern" != "" ] ; then
+	    newerKernels="$newerKernels $kern"
+	fi
+	sortedKernels="$newerKernels"
+done
+
+if test -f "/boot/vmlinuz.old" ; then
+	sortedKernels="/boot/vmlinuz.old $sortedKernels"
+fi
+if test -f "/boot/vmlinuz" ; then
+	sortedKernels="/boot/vmlinuz $sortedKernels"
+fi
+
+# Add our last-good-boot kernel, second in list. We always add it, because
+# it can appear out of nowhere.
+newerKernels=""
+last_good="/boot/last-good-boot/vmlinuz"
+if [ -e "$last_good" ]; then
+	for i in $sortedKernels ; do
+		if [ "$last_good" != "" ]; then
+			newerKernels="$i $last_good"
+			last_good=""
+		else
+			newerKernels="$newerKernels $i"
+		fi
+	done
+	# Shouldn't happen, unless someone removed all the kernels
+	if [ "$last_good" != "" ]; then
+		newerKernels="$newerKernels $last_good"
+	fi
+	sortedKernels="$newerKernels"
+fi
+
+#Finding the value the default line
+use_grub_set_default="false"
+if test "$updatedefaultentry" = "true" ; then
+	defaultEntryNumber=$(sed -ne 's/^[[:blank:]]*default[[:blank:]]*\(.*\).*/\1/p' $menu)
+
+	if [ "$defaultEntryNumber" = "saved" ] ; then
+	    defaultEntryNumber=$(sed 'q' "$grub_dir/default")
+	    use_grub_set_default="true"	   
+	fi
+	
+	if test -n "$defaultEntryNumber"; then	
+		defaultEntryNumberPlusOne=$(expr $defaultEntryNumber \+ 1);
+		defaultEntry=$(grep "^[[:blank:]]*title" $menu | sed -ne "${defaultEntryNumberPlusOne}p" | sed -ne ";s/^[[:blank:]]*title[[:blank:]]*//p")
+		defaultEntry=$(echo $defaultEntry | sed -e "s/[[:blank:]]*$//") # don't trust trailing blanks	
+	else
+		notChangeDefault="yes"
+	fi
+else
+		notChangeDefault="yes"
+fi
+
+output_kernel_list
+
+otherbuffer=$(tempfile)
+cat $buffer > $otherbuffer
+
+ucf_update_kernels "$buffer" "$otherbuffer"
+
+echo -n "Updating $menu ... " >&2
+# Insert the new options into the menu
+if ! grep -q "^$start" $menu ; then
+    cat $buffer >> $menu
+    rm -f $buffer
+else
+    umask 077
+    sed -e "/^$start/,/^$end/{
+	/^$start/r $buffer
+	d
+	}
+	" $menu > $menu.new
+    cat $menu.new > $menu
+    rm -f $buffer $menu.new
+fi
+
+# Function to update the default value
+set_default_value() {
+    if [ "$use_grub_set_default" = "true" ] ; then
+	grub-set-default $1
+    else
+	value="$1"
+	newmenu=$(tempfile)
+	sed -e "s/^[[:blank:]]*default[[:blank:]]*[[:digit:]]*\(.*\)/default         ${value}\1/;b" $menu > $newmenu
+	cat $newmenu > $menu
+	rm -f $newmenu
+	unset newmenu
+    fi
+}
+
+#Updating the default number
+if test -z "$notChangeDefault"; then
+	newDefaultNumberPlusOne=$(grep "^[[:blank:]]*title[[:blank:]]*" $menu | grep -n "${defaultEntry}" | cut -f1 -d ":" | sed -ne "1p")
+	if test -z "$newDefaultNumberPlusOne"; then
+		echo "Previous default entry removed, resetting to 0">&2
+		set_default_value "0"
+	elif test -z "$defaultEntry"; then
+		echo "Value of default value matches no entry, resetting to 0" >&2
+		set_default_value "0"
+	else
+		if test "$newDefaultNumberPlusOne" = "1"; then
+			newDefaultNumber="0"
+		else
+			newDefaultNumber=$(expr $newDefaultNumberPlusOne - 1)
+		fi
+		echo "Updating the default booting kernel">&2
+		set_default_value "$newDefaultNumber"
+	fi
+fi
+
+echo "done" >&2
+echo >&2
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..0f7a600
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=3
+https://launchpad.net/cloud-init/+download .*/\+download/cloud-init-(.+)\.tar.gz
diff --git a/tools/run-centos b/tools/run-centos
index d58ef3e..acd7628 100755
--- a/tools/run-centos
+++ b/tools/run-centos
@@ -80,22 +80,43 @@ inside() {
 inject_cloud_init(){
     # take current cloud-init git dir and put it inside $name at
     # ~$user/cloud-init.
-    local name="$1" user="$2" top_d="" dname="" pstat=""
-    top_d=$(git rev-parse --show-toplevel) || {
-        errorrc "Failed to get git top level in $PWD";
+    local name="$1" user="$2" top_d="" dname="cloud-init" pstat=""
+    local cdir="${TEMP_D}/$dname" gitdir="" commitish=""
+    mkdir "$cdir" || return
+    gitdir=$(git rev-parse --git-dir) || {
+        errorrc "Failed to get git git dir in $PWD";
         return
     }
-    dname=$(basename "${top_d}") || return
-    debug 1 "collecting ${top_d} ($dname) into user $user in $name."
-    tar -C "${top_d}/.." -cpf - "$dname" |
-        inside_as "$name" "$user" sh -ec '
+    git clone --bare "$gitdir" "$cdir/.git" || {
+        errorrc "Failed clone $gitdir to $cdir/.git"
+        return
+    }
+    # attempt to get branch name.
+    commitish=$(git rev-parse --abbrev-ref HEAD) || {
+        errorrc "Failed git rev-parse --abbrev-ref HEAD"
+        return
+    }
+    if [ "$commitish" = "HEAD" ]; then
+        # detached head
+        commitish=$(git rev-parse HEAD) || {
+            errorrc "failed git rev-parse HEAD"
+            return
+        }
+    fi
+
+    debug 1 "collecting ${gitdir} ($dname) into user $user in $name."
+    tar -C "${TEMP_D}" -cpf - "$dname" |
+        inside_as "$name" "$user" sh -exc '
             dname=$1
+            commitish=$2
             rm -Rf "$dname"
             tar -xpf -
-            [ "$dname" = "cloud-init" ] || mv "$dname" cloud-init' \
-            extract "$dname"
+            cd "$dname"
+            git config core.bare false
+            git checkout $commitish
+            ' extract "$dname" "$commitish"
     [ "${PIPESTATUS[*]}" = "0 0" ] || {
-        error "Failed to push tarball of '$top_d' into $name" \
+        error "Failed to push tarball of '$gitdir' into $name" \
             " for user $user (dname=$dname)"
         return 1
     }

Follow ups