diff options
Diffstat (limited to 'debian')
48 files changed, 6831 insertions, 0 deletions
diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 00000000..86bcf530 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,23 @@ +=== 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 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..d1cdac9e --- /dev/null +++ b/debian/changelog @@ -0,0 +1,2349 @@ +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-rev b/debian/cherry-pick-rev new file mode 100755 index 00000000..09f60d12 --- /dev/null +++ b/debian/cherry-pick-rev @@ -0,0 +1,45 @@ +#!/bin/sh +Usage() { + cat <<EOF +Usage: ${0##*/} repo revno name + cherry pick revno from trunk branch + + This takes care of getting the patch and pulling it into the local + directory. + + End result is modified: + debian/patches/\${revno}-\${name} + debian/patches/series +EOF +} + +[ $# -eq 3 ] || { Usage 1>&2; exit 1; } +[ "$1" = "--help" -o "$1" = "-h" ] && { Usage; exit 0; } + +repo=${1} +revno=${2} +name=${3} + +name=${name%.patch} +name=${name%.diff} + +fname="${name}.patch" + +( cd "${repo}" && bzr log -r${revno}..${revno} && + bzr diff -p1 -r$((${revno}-1))..${revno} ) | + filterdiff --exclude "*/ChangeLog" | + quilt import -P "${fname}" /dev/stdin + +[ $? -eq 0 ] || { echo "failed"; exit 1; } + +cat <<EOF +now, + quilt push + quilt refresh + rm -f .pc/${fname}/.timestamp + files="\$(quilt files ${fname}) debian/patches/series debian/patches/${fname} .pc/${fname} .pc/applied-patches" + bzr add \$files + dch --append "${name} (cherry pick $revno)" + dch --edit # improve the entry + debcommit $files +EOF 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..a36fb248 --- /dev/null +++ b/debian/cloud-init.postinst @@ -0,0 +1,264 @@ +#!/bin/sh -e + +. /usr/share/debconf/confmodule + +set -f # disable pathname expansion +db_capb escape # to support carriage return / multi-line values + +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 +} + +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" +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..f056f05b --- /dev/null +++ b/debian/cloud-init.templates @@ -0,0 +1,12 @@ +Template: cloud-init/datasources +Type: multiselect +Default: NoCloud, ConfigDrive, OpenNebula, Azure, AltCloud, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, Ec2, CloudStack, None +Choices-C: NoCloud, ConfigDrive, OpenNebula, 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, 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..40dabac1 --- /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 + 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..ef7510c2 --- /dev/null +++ b/debian/new-upstream-snapshot @@ -0,0 +1,117 @@ +#!/bin/sh + +TEMP_D="" +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 + +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 + +git merge "${from_ref}" -m "merge from $from_ref at $new_upstream_ver" || + fail "failed: git merge ${from_ref} -m 'merge from $from_ref ..'" +TEMP_D=$(mktemp -d) || fail "failed mktemp" +clog="${TEMP_D}/changelog" +gitlog="${TEMP_D}/gitlog" + +git log --first-parent --no-decorate --format=full \ + "${prev_pkg_hash}..${from_ref}" > "$gitlog" || + fail "failed git log ${prev_pkg_hash}..${from_ref}" + +cat >> "$clog" <<EOF +$pkg_name ($new_pkg_ver) UNRELEASED; urgency=medium + + * New upstream snapshot. +EOF +git_log_to_dch < "$gitlog" >> "$clog" || + fail "failed git_log_to_dch" +cat >> "$clog" <<EOF + + -- ${DEBFULLNAME} <$DEBEMAIL> $(date -R) + +EOF + +cat "$clog" "debian/changelog" > "$TEMP_D/newlog" && + cp "$TEMP_D/newlog" "debian/changelog" || + fail "failed replacing debian/changelog" + +dch -e || fail "dch -e exited $?" + +git diff + +echo -n "Commit this change? (Y/n): " +read answer || fail "failed to read answer" +case "$answer" in + n|[Nn][oO]) exit 1;; +esac + +msg="update changelog (new upstream snapshot $new_upstream_ver)." +git commit -m "$msg" debian/changelog || + fail "failed to commit '$msg'" diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in new file mode 100644 index 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 "instal·la la versió del mantenidor del paquet" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "keep the local version currently installed" +msgstr "mantén la versió instal·lada actualment" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show the differences between the versions" +msgstr "mostra les diferències entre les versions" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a side-by-side difference between the versions" +msgstr "mostra les diferències entre les versions" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a 3-way difference between available versions" +msgstr "mostra les diferències entre les versions" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "do a 3-way merge between available versions (experimental)" +msgstr "" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "start a new shell to examine the situation" +msgstr "inicia una nova línia de comandes per examinar la situació" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "What would you like to do about ${BASENAME}?" +msgstr "Què voleu fer respecte el ${BASNAME}?" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "" +"A new version of /boot/grub/menu.lst is available, but the version installed " +"currently has been locally modified." +msgstr "" +"Hi ha una nova versió del fitxer /boot/grub/menu.lst, però la vostra versió " +"s'ha modificat localment." diff --git a/debian/po/cs.po b/debian/po/cs.po new file mode 100644 index 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 "installér pakkevedligeholderens udgave" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "keep the local version currently installed" +msgstr "bevar din aktuelt-installerede udgave" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show the differences between the versions" +msgstr "vis forskellene mellem udgaverne" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a side-by-side difference between the versions" +msgstr "vis forskellene mellem versionerne overfor hinanden" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a 3-way difference between available versions" +msgstr "vis 3-vejs forskelle mellem de tilgængelige udgaver af filen" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "do a 3-way merge between available versions (experimental)" +msgstr "" +"udfør en 3-vejs fletning mellem de tilgængelige udgaver af filen [Meget " +"eksperimentelt]" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "start a new shell to examine the situation" +msgstr "start en ny skal for at undersøge situationen" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "What would you like to do about ${BASENAME}?" +msgstr "Hvad vil du gøre med ${BASENAME}?" + +#. Type: select +#. Description +#: ../grub.templates:1002 +#, fuzzy +msgid "" +"A new version of /boot/grub/menu.lst is available, but the version installed " +"currently has been locally modified." +msgstr "" +"Der er kommet en ny version af filen /boot/grub/menu.lst, men din version er " +"blevet ændret lokalt." diff --git a/debian/po/de.po b/debian/po/de.po new file mode 100644 index 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 +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traducción al español, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/coordinacion +# especialmente las notas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: ucf 1.06\n" +"Report-Msgid-Bugs-To: Source: grub@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 versión del responsable del paquete" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "keep the local version currently installed" +msgstr "conservar la versión local actualmente instalada" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show the differences between the versions" +msgstr "mostrar las diferencias entre las versiones" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a side-by-side difference between the versions" +msgstr "mostrar las diferencias entre las versiones lado a lado" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a 3-way difference between available versions" +msgstr "mostrar las diferencias entre las tres versiones" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "do a 3-way merge between available versions (experimental)" +msgstr "fusionar las tres versiones disponibles (experimental)" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "start a new shell to examine the situation" +msgstr "ejecutar un nuevo intérprete para examinar la situación" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "What would you like to do about ${BASENAME}?" +msgstr "¿Qué desea hacer con ${BASENAME}?" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "" +"A new version of /boot/grub/menu.lst is available, but the version installed " +"currently has been locally modified." +msgstr "" +"Hay una nueva versión del fichero /boot/grub/menu.lst, pero la versión que " +"está instalada ha sido modificada localmente." diff --git a/debian/po/eu.po b/debian/po/eu.po new file mode 100644 index 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 Zarêba <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 Zarêba <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 ró¿nic pomiêdzy wersjami" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a side-by-side difference between the versions" +msgstr "pokazanie ró¿nic - obok siebie - pomiêdzy wersjami" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a 3-way difference between available versions" +msgstr "pokazanie ró¿nic pomiêdzy trzema dostêpnymi wersjami" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "do a 3-way merge between available versions (experimental)" +msgstr "scalenie zmian pomiêdzy 3 dostêpnymi wersjami (eksperymentalne)" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "start a new shell to examine the situation" +msgstr "uruchomienie pow³oki w celu zbadania sytuacji" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "What would you like to do about ${BASENAME}?" +msgstr "Proszê wybraæ akcjê do wykonania na pliku ${BASENAME}:" + +#. Type: select +#. Description +#: ../grub.templates:1002 +#, fuzzy +msgid "" +"A new version of /boot/grub/menu.lst is available, but the version installed " +"currently has been locally modified." +msgstr "" +"Dostêpna jest nowa wersja pliku /boot/grub/menu.lst, ale obecna wersja " +"zosta³a lokalnie zmodyfikowana." + +#~ msgid "Modified configuration file" +#~ msgstr "Zmodyfikowany plik konfiguracyjny" + +#~ msgid "Line by line differences between versions" +#~ msgstr "Ró¿nice linia po linii pomiêdzy wersjami" diff --git a/debian/po/pt.po b/debian/po/pt.po new file mode 100644 index 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..19648f6d --- /dev/null +++ b/debian/update-grub-legacy-ec2 @@ -0,0 +1,1598 @@ +#!/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 + is_xen_kernel() { + # input is like /boot/vmlinuz-2.6.35-13-virtual + # get the version string out of it. + local ver_flavor=""; + ver_flavor="${1##*vmlinuz-}" + + case "${ver_flavor}" in + *-ec2) return 0;; + *-virtual) + # 10.04 LTS through 12.04 LTS -virtual is the EC2/Xen kernel + dpkg --compare-versions ${ver_flavor%-virtual} gt 2.6.35-13 && return 0;; + *-generic) + # Starting with 12.10, -virtual was merged into -generic + dpkg --compare-versions ${ver_flavor%-generic} ge 3.4.0-3 && return 0;; + esac + return 1; + } +fi + +for kern in /boot/vmlinuz-*; do + 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 |