diff options
50 files changed, 7281 insertions, 0 deletions
| diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 00000000..df79a3eb --- /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/changelog b/debian/changelog new file mode 100644 index 00000000..658de70c --- /dev/null +++ b/debian/changelog @@ -0,0 +1,2504 @@ +cloud-init (0.7.9-0ubuntu1~16.04.2) xenial-proposed; urgency=medium + +  * debian/update-grub-legacy-ec2: fix shell syntax error. (LP: #1662221) + + -- Scott Moser <smoser@ubuntu.com>  Mon, 06 Feb 2017 16:18:28 -0500 + +cloud-init (0.7.9-0ubuntu1~16.04.1) xenial-proposed; 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). +  * debian/patches/azure-use-walinux-agent.patch: continue relying on +    walinux agent in stable release. +  * New upstream release. +    - doc: adjust headers in tests documentation for consistency. +    - pep8: fix issue found in zesty build with pycodestyle. +    - 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) +    - pep8: whitespace fix [Scott Moser] +    - 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. [Joshua Harlow] +    - user-groups: fix bug when groups was provided as string and had spaces +      [Scott Moser] (LP: #1354694) +    - when adding a user, strip whitespace from group list +      [Lars Kellogg-Stedman] (LP: #1354694) +    - fix decoding of utf-8 chars in yaml test +    - Replace usage of sys_netdev_info with read_sys_net +      [Joshua Harlow] (LP: #1625766) +    - fix problems found in python2.6 test. [Joshua Harlow] +    - Just use file logging by default [Joshua Harlow] (LP: #1643990) +    - Improve formatting for ProcessExecutionError [Wesley Wiedenmeier] +    - flake8: fix trailing white space +    - Doc: various documentation fixes [Sean Bright] +    - cloudinit/config/cc_rh_subscription.py: Remove repos before adding +      [Brent Baude] +    - packages/redhat: fix rpm spec file. +    - main: set TZ in environment if not already set. [Ryan Harper] + + -- Scott Moser <smoser@ubuntu.com>  Fri, 20 Jan 2017 10:43:12 -0500 + +cloud-init (0.7.8-49-g9e904bb-0ubuntu1~16.04.4) xenial; urgency=medium + +  * debian/update-grub-legacy-ec2: +    - Correctly detect kernels ending in -aws as kernels that can boot on EC2 +      (LP: #1655934) + + -- Daniel Watkins <daniel.watkins@canonical.com>  Thu, 12 Jan 2017 11:56:03 +0000 + +cloud-init (0.7.8-49-g9e904bb-0ubuntu1~16.04.3) xenial-proposed; urgency=medium + +  * debian/cherry-pick: use git format-patch rather than git show +  * cherry-pick a9d41de: CloudSigma: Fix bug where datasource was not +    loaded in local (LP: #1648380) +  * cherry-pick c9c9197: mounts: use mount -a again to accomplish mounts +    (LP: #1647708) + + -- Scott Moser <smoser@ubuntu.com>  Tue, 13 Dec 2016 16:02:50 -0500 + +cloud-init (0.7.8-49-g9e904bb-0ubuntu1~16.04.2) xenial-proposed; urgency=medium + +  * cherry-pick 18203bf: disk_setup: Use sectors as unit when formatting +    MBR disks with sfdisk. (LP: #1460715) +  * cherry-pick 6e92c5f: net/cmdline: Consider ip= or ip6= on command +    line not only ip= (LP: #1639930) +  * cherry-pick 8c6878a: tests: fix assumptions that expected no eth0 in +    system. (LP: #1644043) +  * cherry-pick 2d2ec70: OpenStack: extend physical types to include +    hyperv, hw_veb, vhost_user. (LP: #1642679) + + -- Scott Moser <smoser@ubuntu.com>  Thu, 01 Dec 2016 16:57:39 -0500 + +cloud-init (0.7.8-49-g9e904bb-0ubuntu1~16.04.1) xenial-proposed; 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. +      (LP: #1611074) +    - systemd: cloud-init-local use RequiresMountsFor=/var/lib/cloud +      (LP: #1642062) + + -- Scott Moser <smoser@ubuntu.com>  Fri, 18 Nov 2016 16:51:54 -0500 + +cloud-init (0.7.8-47-gb6561a1-0ubuntu1~16.04.1) xenial-proposed; urgency=medium + +  * debian/cloud-init.templates: enable DigitalOcean by default [Ben Howard] +  * New upstream snapshot. +    - systemd/cloud-init-local.service: +      + replace 'Wants' and 'After' on local-fs.target with more granular +        After=systemd-remount-fs.service and RequiresMountsFor=/var/lib +        and Before=sysinit.target. +        This is done run sufficiently early enough to update /etc/fstab. +        (LP: #1611074) +      + add Before=NetworkManager.service so that cloud-init can render +        NetworkManager network config before it would apply them. +    - systemd/cloud-init.service: +      + add Before=sysinit.target and DefaultDependencies=no (LP: #1611074) +      + drop Requires=networking.service to work where networking.service is +        not needed. +      + add Conflicts=shutdown.target +      + drop unnecessary Wants=local-fs.target +    - net: support reading ipv6 dhcp config from initramfs [LaMont Jones] +      (LP: #1621615) +    - dmidecode: Allow dmidecode to be used on aarch64, and only attempt +      usage on x86, x86_64, and aarch64. [Robert Schweikert] +    - disk-config: udev settle after partitioning in gpt format. +      (LP: #1626243) +    - Add support for snap create-user on Ubuntu Core images. [Ryan Harper] +      (LP: #1619393) +    - Fix sshd restarts for rhel distros. [Jim Gorz] +    - Move user/group functions to new ug_util file [Joshua Harlow] +    - update Gentoo initscripts to run in the correct order [Matthew Thode] +    - MAAS: improve the debugging tool in datasource to consider +      config provided on kernel cmdline. +    - lxd: Update network config for LXD 2.3 [Stéphane Graber] (LP: #1640556) +    - Decode unicode types in decode_binary [Robert Schweikert] +    - Allow ephemeral drive to be unpartitioned [Paul Meyer] +    - subp: add 'update_env' argument which allows for more easily adding +      environment variables to a subprocess call. +    - Adjust mounts and disk configuration for systemd. (LP: #1611074) +    - DataSources: +      + Ec2: protect against non-dictionary in block-device-mapping. +      + AliYun: Add new datasource for Ali-Cloud ECS, that is +        available but not enabled by default [kaihuan.pkh] +      + DigitalOcean: use meta-data for network configuration and +        enable data source by default. [Ben Howard] +      + OpenNebula: replace parsing of 'ip' command with similar function +        available in cloudinit.net.  This fixed unit tests when running +        in environment with no networking. +    - doc changes: +      + Add documentation on stages of boot. +      + make the RST files consistently formated and other improvements. +      + fixed example to not overwrite /etc/hosts [Chris Glass] +      + fix spelling / typos in ca_certs and scripts_vendor. +      + improve HACKING.rst file +      + Add documentation for logging features. [Wesley Wiedenmeier] +      + Improve module documentation and doc cleanup. [Wesley Wiedenmeier] +    - code style and unit test changes: +      + pep8: fix style errors reported by pycodestyle 2.1.0 +      + pyflakes: fix issue with pyflakes 1.3 found in ubuntu zesty-proposed. +      + Add coverage dependency to bddeb to fix package build. +      + Add coverage collection to tox unit tests. [Joshua Powers] +      + do not read system /etc/cloud/cloud.cfg.d (LP: #1635350) +      + tests: silence the Cheetah UserWarning about NameMapper C version. +      + Fix python2.6 things found running in centos 6. + + -- Scott Moser <smoser@ubuntu.com>  Tue, 15 Nov 2016 17:29:12 -0500 + +cloud-init (0.7.8-1-g3705bb5-0ubuntu1~16.04.3) xenial-proposed; urgency=medium + +  * ntp: move to run after apt configuration (LP: #1628337). + + -- Scott Moser <smoser@ubuntu.com>  Mon, 03 Oct 2016 12:22:26 -0400 + +cloud-init (0.7.8-1-g3705bb5-0ubuntu1~16.04.2) xenial; urgency=medium + +  * Support IPv6 config coming from initramfs.  LP: #1621615. + + -- LaMont Jones <lamont@ubuntu.com>  Fri, 23 Sep 2016 20:54:40 -0600 + +cloud-init (0.7.8-1-g3705bb5-0ubuntu1~16.04.1) xenial-proposed; 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@ubuntu.com>  Thu, 15 Sep 2016 09:57:27 -0400 + +cloud-init (0.7.7-31-g65ace7b-0ubuntu1~16.04.2) xenial-proposed; urgency=medium + +  * debian/control: add Breaks of older versions of walinuxagent (LP: #1623570) + + -- Scott Moser <smoser@ubuntu.com>  Wed, 14 Sep 2016 16:39:50 -0400 + +cloud-init (0.7.7-31-g65ace7b-0ubuntu1~16.04.1) xenial-proposed; urgency=medium + +  * debian/control: fix missing dependency on python3-serial, +    and make SmartOS datasource work. +  * debian/cloud-init.templates fix capitalisation in template so +    dpkg-reconfigure works to select OpenStack. (LP: #1575727) +  * d/README.source, d/control, d/new-upstream-snapshot, d/rules: sync +    with yakkety for changes due to move to git. +  * d/rules: change PYVER=python3 to PYVER=3 to adjust to upstream change. +  * debian/rules, debian/cloud-init.install: remove install file +    to ensure expected files are collected into cloud-init deb. +    (LP: #1615745) +  * debian/dirs: remove obsolete / unused file. +  * upstream move from bzr to git. +  * 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) +    - remove obsolete .bzrignore +    - systemd: Better support package and upgrade. (LP: #1576692, #1621336) +    - tests: cleanup tempdirs in apt_source tests +    - 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. +    - 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) +    - 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] +    - 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] +    - DigitalOcean: use the v1.json endpoint [Ben Howard] +    - MAAS: add vendor-data support (LP: #1612313) +    - Upgrade to a configobj package new enough to work [Joshua Harlow] +    - 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 [Joshua Harlow] +    - ChangeLog: update changelog for previous commit. +    - add ntp config module [Ryan Harper] +    - SmartOS: more improvements for network configuration +    - tools/read-version: update to address change in version +    - make-tarball: older versions of git with --format=tar. +    - read-version: do not attempt git-describe if no git. +    - Newer requests have strong type validation [Joshua Harlow] +    - For upstream snapshot versions do not modify git-describe output. +    - adjust signal_handler for version changes. +    - revert unintended change to ubuntu sources list +    - drop modification of version during make-tarball, tools changes. +    - adjust tools and version information. +    - Update build tools to work with git [Lars Kellogg-Stedman] +    - fix pep8 errors in mcollective unit tests +    - mcollective: add tests, cleanups and bug fix when no config in /etc. + + -- Scott Moser <smoser@ubuntu.com>  Mon, 12 Sep 2016 16:05:25 -0400 + +cloud-init (0.7.7~bzr1256-0ubuntu1~16.04.1) xenial-proposed; 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@ubuntu.com>  Fri, 15 Jul 2016 13:27:04 -0400 + +cloud-init (0.7.7~bzr1246-0ubuntu1~16.04.1) xenial-proposed; urgency=medium + +  * New upstream snapshot. +    - fix restoring from a datasource that did not have dsmode (LP: #1596690) + + -- Scott Moser <smoser@ubuntu.com>  Mon, 27 Jun 2016 16:31:37 -0400 + +cloud-init (0.7.7~bzr1245-0ubuntu1~16.04.1) xenial-proposed; urgency=medium + +  * debian/new-upstream-snapshot: minor change supporting revision +    passed in as an argument. +  * debian/control: Build-Depends on python3-unittest2 +  * SRU Upstream to 16.04 (LP: #1595302). +    - user_data: fix error when user-data is not utf-8 decodable +    - write_files: if no permissions are provided, use the default without +      logging a warning. +    - do not write /etc/systemd/network/50-cloud-init-*.link files +    - fix several potential errors identified by pylint. +    - move 'main' into cloudinit/cmd/ for easier testing +    - Remove trailing dot from GCE metadata URL [Phil Roche] +    - Refactor cloudinit networking module to improve testing +    - Change missing Cheetah log warning to debug [Andrew Jorgensen] +    - network configuration improvements +      - centrally handle 'dsmode' (DataSource mode) to be 'local' or 'net. +      - support networking information being read on dreamcompute +      - support reading and applying networking information on SmartOS +      - improve reading networking from openstack network_data.json +      - support for renaming devices in a container. +      - remove blocking of udev rules +    - Apt sources configuration improvements +    - cloud-config specified on kernel command line will now override +      system settings. +    - fix timestamp in reporting events. +    - Paths: fix instance path if datasource's id has a '/'. +    - Config Drive: fix check_instance_id signature. +    - cloudstack: Only use DHCPv4 lease files as a datasource + + -- Scott Moser <smoser@ubuntu.com>  Wed, 22 Jun 2016 16:06:49 -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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  Sat, 17 Dec 2011 21:08:23 +0000 + +cloud-init (0.6.2-0ubuntu1) precise; urgency=low + +  * New upstream release + + -- Scott Moser <smoser@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  Thu, 04 Feb 2010 03:00:05 -0500 + +ec2-init (0.5.2-0ubuntu1) lucid; urgency=low + +  * new upstream release + + -- Scott Moser <smoser@ubuntu.com>  Fri, 29 Jan 2010 13:30:52 -0500 + +ec2-init (0.5.1-0ubuntu1) lucid; urgency=low + +  * new upstream release + + -- Scott Moser <smoser@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  Mon, 11 Jan 2010 12:03:45 -0500 + +ec2-init (0.5.0-0ubuntu2) lucid; urgency=low + +  * new upstream release + + -- Scott Moser <smoser@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  Thu, 24 Sep 2009 16:32:42 -0400 + +ec2-init (0.4.999-0ubuntu1) karmic; urgency=low + +  * New upstream release + + -- Soren Hansen <soren@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  Tue, 31 Mar 2009 09:37:13 -0400 + +ec2-init (0.3.3ubuntu7) jaunty; urgency=low + +  * debian/rules: Fix typo.  + + -- Chuck Short <zulcss@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  Wed, 04 Mar 2009 08:33:01 -0500 + +ec2-init (0.3.3ubuntu3~intrepid4) intrepid; urgency=low + +  * set distro to intrepid. + + -- Chuck Short <zulcss@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  Tue, 24 Feb 2009 14:02:37 -0500 + +ec2-init (0.3.3ubuntu1) jaunty; urgency=low + +  * debian/init: Fix init script.  + + -- Chuck Short <zulcss@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  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@ubuntu.com>  Tue, 13 Jan 2009 15:20:21 -0500 + +ec2-init (0.1) intrepid; urgency=low + +  * Initial release (LP: #269434). + + -- Soren Hansen <soren@ubuntu.com>  Fri, 12 Sep 2008 15:30:32 +0200 + diff --git a/debian/cherry-pick b/debian/cherry-pick new file mode 100755 index 00000000..4906917f --- /dev/null +++ b/debian/cherry-pick @@ -0,0 +1,194 @@ +#!/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=( debian/changelog "$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'" + +    return 0 +} + +main "$@" +# vi: ts=4 expandtab diff --git a/debian/cloud-init.config b/debian/cloud-init.config new file mode 100644 index 00000000..6e9c6f73 --- /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.lintian-overrides b/debian/cloud-init.lintian-overrides new file mode 100644 index 00000000..591b651e --- /dev/null +++ b/debian/cloud-init.lintian-overrides @@ -0,0 +1,3 @@ +# this explicitly diverts ureadahead.conf in ureadahead package +# see LP: #499520 for more discussion +cloud-init binary: diversion-for-unknown-file diff --git a/debian/cloud-init.postinst b/debian/cloud-init.postinst new file mode 100644 index 00000000..420420b5 --- /dev/null +++ b/debian/cloud-init.postinst @@ -0,0 +1,331 @@ +#!/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" || : +} + + +if [ "$1" = "configure" ]; then +   # disable ureadahead (LP: #499520) +   dpkg-divert --package cloud-init --rename --divert \ +      /etc/init/ureadahead.conf.disabled --add /etc/init/ureadahead.conf +   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" +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 00000000..81b66812 --- /dev/null +++ b/debian/cloud-init.postrm @@ -0,0 +1,17 @@ +#!/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) +      dpkg-divert --package cloud-init --remove --rename --divert \ +            /etc/init/ureadahead.conf.disabled /etc/init/ureadahead.conf +      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 00000000..c8406e31 --- /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 00000000..8954fa4d --- /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 00000000..494c27a9 --- /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, Ec2, CloudStack, None +Choices-C: NoCloud, ConfigDrive, OpenNebula, DigitalOcean, Azure, AltCloud, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, 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, 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 00000000..ec635144 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..ed147798 --- /dev/null +++ b/debian/control @@ -0,0 +1,71 @@ +Source: cloud-init +Section: admin +Priority: extra +Maintainer: Scott Moser <smoser@ubuntu.com> +Build-Depends: debhelper (>= 9), +               dh-python, +               dh-systemd, +               iproute2, +               pep8, +               po-debconf, +               pyflakes, +               python3, +               python3-configobj, +               python3-httpretty, +               python3-jinja2, +               python3-jsonpatch, +               python3-mock, +               python3-nose, +               python3-oauthlib, +               python3-pep8, +               python3-prettytable, +               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.6 + +Package: cloud-init +Architecture: all +Depends: cloud-guest-utils | cloud-utils, +         ifupdown (>= 0.6.10ubuntu5), +         procps, +         python3, +         python3-requests (>= 0.8.2), +         python3-serial, +         ${misc:Depends}, +         ${python3:Depends} +Breaks: walinuxagent (<< 2.1.3-0ubuntu4.1) +Recommends: eatmydata, gdisk, software-properties-common +Provides: ec2-init +Replaces: ec2-init (<<0.5.3) +Conflicts: ec2-init (<<0.5.3) +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 (>= 1.5.19) | cdebconf, +         ucf, +         util-linux (>= 2.15-1), +         ${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. + +Package: ec2-init +Depends: cloud-init, ${misc:Depends} +Architecture: all +Description: package renamed -> cloud-init + This package has been renamed to 'cloud-init'. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..cf4a76f8 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,51 @@ +Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135 +Name: cloud-init +Maintainer: Scott Moser <scott.moser@canonical.com> +Source: https://launchpad.net/cloud-init + +This package was debianized by Soren Hansen <soren@ubuntu.com> on +Thu, 04 Sep 2008 12:49:15 +0200 as ec2-init.  It was later renamed to +cloud-utils by Scott Moser <scott.moser@canonical.com> + +Upstream Author: Scott Moser <smoser@canonical.com> +    Soren Hansen <soren@canonical.com> +    Chuck Short <chuck.short@canonical.com> + +Copyright: 2010, Canonical Ltd. +License: GPL-3 or Apache-2.0 + 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. + +Files: cloudinit/boto_utils.py +Copyright: 2006,2007, Mitch Garnaat http://garnaat.org/ +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, dis- + tribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the fol- + lowing conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- + ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT + SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. diff --git a/debian/grub-legacy-ec2.install b/debian/grub-legacy-ec2.install new file mode 100644 index 00000000..b75b0bee --- /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/kernel/ +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 00000000..ed8c77f1 --- /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 00000000..3c4aa5cd --- /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 00000000..50184234 --- /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 00000000..ac73b428 --- /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 00000000..0562c8cb --- /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 00000000..8816bc7e --- /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 00000000..dcd88fb1 --- /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@gnu.org>. +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 00000000..33436510 --- /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 00000000..6f6aa4a4 --- /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 00000000..6240de0d --- /dev/null +++ b/debian/new-upstream-snapshot @@ -0,0 +1,153 @@ +#!/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="" +    aname=${author% <*} +    echo "    - $subject [${aname}]${bugs:+ (LP: ${bugs})}" +} + +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_upstream=$(git describe master) +new_pkg_debian="0ubuntu1" +new_upstream_ver=$(git describe "${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/patches/azure-use-walinux-agent.patch b/debian/patches/azure-use-walinux-agent.patch new file mode 100644 index 00000000..d0051b8c --- /dev/null +++ b/debian/patches/azure-use-walinux-agent.patch @@ -0,0 +1,17 @@ +Description: Use walinux-agent rather than builtin fabric support + Upstream now uses the built-in support for instance initialization on Azure. + On a stable release, we want to continue to use the walinux-agent integration. + Upstream made this change under bug 1538522. +Forwarded: not-needed +Author: Scott Moser <smoser@ubuntu.com> +--- a/cloudinit/sources/DataSourceAzure.py ++++ b/cloudinit/sources/DataSourceAzure.py +@@ -34,7 +34,7 @@ BOUNCE_COMMAND = [ + RESOURCE_DISK_PATH = '/dev/disk/cloud/azure_resource' +  + BUILTIN_DS_CONFIG = { +-    'agent_command': AGENT_START_BUILTIN, ++    'agent_command': AGENT_START, +     'data_dir': "/var/lib/waagent", +     'set_hostname': True, +     'hostname_bounce': { diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000..8804449a --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +azure-use-walinux-agent.patch diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in new file mode 100644 index 00000000..9dc1b8f6 --- /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 00000000..e839a466 --- /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@ica.es>, 2004 +# +msgid "" +msgstr "" +"Project-Id-Version: ucf_0.30_templates\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@ica.es>\n" +"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\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 "installa 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 "mantn la versi installada 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 diferncies 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 diferncies 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 diferncies 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 lnia 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 00000000..7d8db4a7 --- /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@packages.debian.org\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@debian.cz>\n" +"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\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 00000000..399439cf --- /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@image.dk>, 2005. +# Claus Hindsgaul <claus.hindsgaul@gmail.com>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: ucf debconf template\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@gmail.com>\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 "installr 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 tilgngelige 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 "" +"udfr en 3-vejs fletning mellem de tilgngelige 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 undersge situationen" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "What would you like to do about ${BASENAME}?" +msgstr "Hvad vil du gre 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 00000000..294f7390 --- /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@debian.org>, 2004-2007. +msgid "" +msgstr "" +"Project-Id-Version: ucf_3.002_de\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@debian.org>\n" +"Language-Team: German <debian-l10n-german@lists.debian.org>\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 00000000..725d9e91 --- /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@usa.net>, 2004 +# - Updated  +#       Javier Fernandez-Sanguino <jfs@debian.org>, 2007 +# +# +#  Traductores, si no conoce el formato PO, merece la pena leer la  +#  documentacin de gettext, especialmente las secciones dedicadas a este +#  formato, por ejemplo ejecutando: +#         info -n '(gettext)PO Files' +#         info -n '(gettext)Header Entry' +# +# Equipo de traduccin al espaol, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traduccin de Debian al espaol +#   http://www.debian.org/intl/spanish/coordinacion +#   especialmente las notas de traduccin en +#   http://www.debian.org/intl/spanish/notas +# +# - La gua de traduccin 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@packages.debian.org\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@debian.org>\n" +"Language-Team: Debian Spanish <debian-l10n-spanish@lists.debian.org>\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 versin 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 versin 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 intrprete para examinar la situacin" + +#. 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 versin del fichero /boot/grub/menu.lst, pero la versin que " +"est instalada ha sido modificada localmente." diff --git a/debian/po/eu.po b/debian/po/eu.po new file mode 100644 index 00000000..ddf7d2a7 --- /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@beobide.net>, 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: ucf-debconf\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@beobide.net>\n" +"Language-Team: Euskara <Librezale@librezale.org>\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 00000000..62da4409 --- /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@packages.debian.org\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@iki.fi>\n" +"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\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 00000000..1598329c --- /dev/null +++ b/debian/po/fr.po @@ -0,0 +1,78 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@wanadoo.fr>\n" +"Language-Team: French <debian-l10n-french@lists.debian.org>\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 00000000..6547ad32 --- /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@debian.org>, 2006, 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: ucf\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@debian.org>\n" +"Language-Team: Galician <proxecto@trasno.net>\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 00000000..f344e463 --- /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@uno.it>, 2005. +msgid "" +msgstr "" +"Project-Id-Version: ucf_1.18_templates\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@uno.it>\n" +"Language-Team:  Italian <tp@lists.linux.it>\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 00000000..981ef228 --- /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@packages.debian.org\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@debian.org>\n" +"Language-Team: Japanese <debian-japanese@lists.debian.org>\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 00000000..e8acf632 --- /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@packages.debian.org\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@lists.debian.org>\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 00000000..a42099e1 --- /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 Zarba <wojtekz@comp.waw.pl>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: ucf3002\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\n" +"POT-Creation-Date: 2008-01-28 08:38-0800\n" +"PO-Revision-Date: 2007-06-27 17:15+0200\n" +"Last-Translator: Wojciech Zarba <wojtekz@itrium.icd.waw.pl>\n" +"Language-Team: Polish <pl@li.org>\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 rnic pomidzy 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 rnic - obok siebie - pomidzy 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 rnic pomidzy trzema dostpnymi 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 pomidzy 3 dostpnymi 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 powoki 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 "" +"Dostpna jest nowa wersja pliku /boot/grub/menu.lst, ale obecna wersja " +"zostaa lokalnie zmodyfikowana." + +#~ msgid "Modified configuration file" +#~ msgstr "Zmodyfikowany plik konfiguracyjny" + +#~ msgid "Line by line differences between versions" +#~ msgstr "Rnice linia po linii pomidzy wersjami" diff --git a/debian/po/pt.po b/debian/po/pt.po new file mode 100644 index 00000000..23c7f8f5 --- /dev/null +++ b/debian/po/pt.po @@ -0,0 +1,82 @@ +# Portuguese translation of ucf's debconf messages. +# 2007, Pedro Ribeiro <p.m42.ribeiro@gmail.com> +# Bruno Queiros <brunomiguelqueiros@sapo.pt>, 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: ucf 2.0020\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@sapo.pt>\n" +"Language-Team: Portuguese <traduz@debianpt.org>\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 00000000..9d736b97 --- /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@packages.debian.org\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@debian.org>\n" +"Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\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 00000000..6560fe31 --- /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@gmail.com>, 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: 3.001\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@gmail.com>\n" +"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\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 00000000..8a157ded --- /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@danielnylander.se>, 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: ucf 2.002\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@danielnylander.se>\n" +"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\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 00000000..f0b056af --- /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@packages.debian.org\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@li.org>\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 00000000..a815be9a --- /dev/null +++ b/debian/po/vi.po @@ -0,0 +1,91 @@ +# Vietnamese translation for UCF. +# Copyright © 2007 Free Software Foundation, Inc. +# Clytie Siddall <clytie@riverland.net.au>, 2005-2007. +# +msgid "" +msgstr "" +"Project-Id-Version: ucf 3.002\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\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@riverland.net.au>\n" +"Language-Team: Vietnamese <vi-VN@googlegroups.com>\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 00000000..ef13251f --- /dev/null +++ b/debian/rules @@ -0,0 +1,21 @@ +#!/usr/bin/make -f +INIT_SYSTEM ?= upstart,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 ./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 diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 00000000..163aaf8d --- /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 00000000..fc2e4e41 --- /dev/null +++ b/debian/update-grub-legacy-ec2 @@ -0,0 +1,1617 @@ +#!/bin/bash +# +# Insert a list of installed kernels in a grub config file +#   Copyright 2001 Wichert Akkerman <wichert@linux.com> +#   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@debian.org> +#	David B.Harris <dbarclay10@yahoo.ca> +#	Marc Haber <mh@zugschlus.de> +#	Crispin Flowerday <crispin@zeus.com> +#	Steve Langasek <steve.langasek@canonical.com> + +# 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=$(awk '$2=="/" && $4~"loop" {print $1}' /etc/fstab) +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 +       *-aws) return 0;; +       *-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 00000000..0f7a600b --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=3 +https://launchpad.net/cloud-init/+download .*/\+download/cloud-init-(.+)\.tar.gz | 
