--- cloud-init-0.5.10.orig/cloud-init.py +++ cloud-init-0.5.10/cloud-init.py @@ -21,11 +21,24 @@ import cloudinit import cloudinit.util as util +import time def warn(str): sys.stderr.write(str) def main(): + now = time.strftime("%a, %d %b %Y %H:%M:%S %z") + try: + uptimef=open("/proc/uptime") + uptime=uptimef.read().split(" ")[0] + uptimef.close() + except IOError as e: + warn("unable to open /proc/uptime\n") + uptime = "na" + + sys.stderr.write("cloud-init running: %s. up %s seconds\n" % (now, uptime)) + sys.stderr.flush() + # cache is not instance specific, so it has to be purged cloudinit.purge_cache() @@ -35,7 +48,7 @@ cloud.get_data_source() except Exception as e: print e - sys.stderr.write("Failed to get instance data") + sys.stderr.write("Failed to get instance data\n") sys.exit(1) # store the metadata --- cloud-init-0.5.10.orig/debian/update-grub-legacy-ec2 +++ cloud-init-0.5.10/debian/update-grub-legacy-ec2 @@ -0,0 +1,1593 @@ +#!/bin/bash +# +# Insert a list of installed kernels in a grub config file +# Copyright 2001 Wichert Akkerman +# 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 +# David B.Harris +# Marc Haber +# Crispin Flowerday +# Steve Langasek + +# 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" <&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 AB +# 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 /var/lib/dpkg/info/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() { + case "${1}" in + *-ec2) return 0;; + *-virtual) + # input is like /boot/vmlinuz-2.6.35-13-virtual + # get the version string out of it. + local ver="" + ver=${1##*/}; ver=${ver#vmlinuz-}; ver=${ver%-virtual}; + dpkg --compare-versions ${ver} gt 2.6.35-13 && 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 --- cloud-init-0.5.10.orig/debian/grub-legacy-ec2.preinst +++ cloud-init-0.5.10/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# --- cloud-init-0.5.10.orig/debian/pycompat +++ cloud-init-0.5.10/debian/pycompat @@ -0,0 +1 @@ +2 --- cloud-init-0.5.10.orig/debian/grub-legacy-ec2.postrm +++ cloud-init-0.5.10/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" -o "$1" = "purge" ]; then + dpkg-divert --package grub-legacy-ec2 --remove --rename --divert \ + /usr/sbin/grub-set-default.real /usr/sbin/grub-set-default +fi +#DEBHELPER# --- cloud-init-0.5.10.orig/debian/grub-legacy-ec2.postinst +++ cloud-init-0.5.10/debian/grub-legacy-ec2.postinst @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ]; then + update-grub-legacy-ec2 -y +fi + +#DEBHELPER# --- cloud-init-0.5.10.orig/debian/grub-legacy-ec2.lintian-overrides +++ cloud-init-0.5.10/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 --- cloud-init-0.5.10.orig/debian/copyright +++ cloud-init-0.5.10/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 +Source: https://launchpad.net/cloud-init + +This package was debianized by Soren Hansen on +Thu, 04 Sep 2008 12:49:15 +0200 as ec2-init. It was later renamed to +cloud-utils by Scott Moser + +Upstream Author: Scott Moser + Soren Hansen + Chuck Short + +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 . + + 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. --- cloud-init-0.5.10.orig/debian/cloud-init.prerm +++ cloud-init-0.5.10/debian/cloud-init.prerm @@ -0,0 +1,6 @@ +#!/bin/sh + +set -e +rm -f /etc/cron.d/cloudinit-updates + +#DEBHELPER# --- cloud-init-0.5.10.orig/debian/dirs +++ cloud-init-0.5.10/debian/dirs @@ -0,0 +1,5 @@ +var/lib/cloud +usr/bin +etc/init +usr/share/doc/cloud +etc/cloud --- cloud-init-0.5.10.orig/debian/cloud-init.preinst +++ cloud-init-0.5.10/debian/cloud-init.preinst @@ -0,0 +1,61 @@ +#!/bin/sh +set -e + +#DEBHELPER# +# 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 +} + +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 +} + +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-0ubuntu1.2"; then + fix_ephemeral0_micro + fi +esac --- cloud-init-0.5.10.orig/debian/grub-legacy-ec2.kernel-postrm +++ cloud-init-0.5.10/debian/grub-legacy-ec2.kernel-postrm @@ -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}" --- cloud-init-0.5.10.orig/debian/control +++ cloud-init-0.5.10/debian/control @@ -0,0 +1,35 @@ +Source: cloud-init +Section: admin +Priority: extra +Maintainer: Scott Moser +Build-Depends: cdbs, debhelper (>= 5.0.38), python, python-central (>= 0.5.6) +XS-Python-Version: all +Standards-Version: 3.8.4 + +Package: cloud-init +Architecture: all +Depends: python, procps, python-configobj, python-cheetah, update-motd, python-yaml, python-software-properties, cloud-utils, ${python:Depends}, ${misc:Depends} +Recommends: ssh-import +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: ec2-init +Depends: ${misc:Depends}, cloud-init +Architecture: all +Description: package renamed -> cloud-init + This package has been renamed to 'cloud-init'. + +Package: grub-legacy-ec2 +Depends: ${misc:Depends}, debconf (>= 1.5.19) | cdebconf, util-linux (>= 2.15-1) +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. --- cloud-init-0.5.10.orig/debian/cloud-init.postinst +++ cloud-init-0.5.10/debian/cloud-init.postinst @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +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 +fi + +#DEBHELPER# --- cloud-init-0.5.10.orig/debian/grub-legacy-ec2.templates +++ cloud-init-0.5.10/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. --- cloud-init-0.5.10.orig/debian/grub-set-default-legacy-ec2 +++ cloud-init-0.5.10/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 +} + +# 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 < $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 --- cloud-init-0.5.10.orig/debian/grub-legacy-ec2.install +++ cloud-init-0.5.10/debian/grub-legacy-ec2.install @@ -0,0 +1,5 @@ +usr/sbin/update-grub-legacy-ec2 +usr/sbin/grub-set-default-legacy-ec2 +usr/sbin/grub-set-default +etc/kernel/postinst.d/x-grub-legacy-ec2 +etc/kernel/postrm.d/x-grub-legacy-ec2 --- cloud-init-0.5.10.orig/debian/cloud-init.install +++ cloud-init-0.5.10/debian/cloud-init.install @@ -0,0 +1,7 @@ +etc/cloud +etc/init/*.conf +etc/update-motd.d/* +usr/bin +usr/lib/python*/*-packages/cloudinit +usr/lib/python*/*-packages/*egg-info +usr/share/doc/cloud-init --- cloud-init-0.5.10.orig/debian/changelog +++ cloud-init-0.5.10/debian/changelog @@ -0,0 +1,508 @@ +cloud-init (0.5.10-0ubuntu1.4) lucid-proposed; urgency=low + + * add grub-legacy-ec2 to support utilizing pv-grub + rebooting into new kernels (LP: #671103) + + -- Scott Moser Thu, 28 Oct 2010 13:03:29 -0400 + +cloud-init (0.5.10-0ubuntu1.3) lucid-proposed; urgency=low + + * fix hang on reboot of ec2's t1.micro (LP: #634102) + + -- Scott Moser Thu, 09 Sep 2010 12:53:32 -0400 + +cloud-init (0.5.10-0ubuntu1.2) lucid-proposed; urgency=low + + * add support for setting debconf selections (LP: #582667) + * force runcmd scripts to run after cloud-init/cloud-config + scripts are finished (LP: #613309) + + -- Scott Moser Tue, 17 Aug 2010 08:45:39 -0400 + +cloud-init (0.5.10-0ubuntu1.1) lucid-proposed; urgency=low + + * wait considerably longer (1050 seconds) for metadata service to come up + (LP: #571271) + + -- Scott Moser Wed, 05 May 2010 10:52:12 -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 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 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 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 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 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 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 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 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 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 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 Thu, 04 Feb 2010 03:00:05 -0500 + +ec2-init (0.5.2-0ubuntu1) lucid; urgency=low + + * new upstream release + + -- Scott Moser Fri, 29 Jan 2010 13:30:52 -0500 + +ec2-init (0.5.1-0ubuntu1) lucid; urgency=low + + * new upstream release + + -- Scott Moser 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 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 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 Mon, 11 Jan 2010 12:03:45 -0500 + +ec2-init (0.5.0-0ubuntu2) lucid; urgency=low + + * new upstream release + + -- Scott Moser 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 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 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 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 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 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 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 Thu, 24 Sep 2009 16:32:42 -0400 + +ec2-init (0.4.999-0ubuntu1) karmic; urgency=low + + * New upstream release + + -- Soren Hansen 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 31 Mar 2009 09:37:13 -0400 + +ec2-init (0.3.3ubuntu7) jaunty; urgency=low + + * debian/rules: Fix typo. + + -- Chuck Short 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 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 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 Wed, 04 Mar 2009 08:33:01 -0500 + +ec2-init (0.3.3ubuntu3~intrepid4) intrepid; urgency=low + + * set distro to intrepid. + + -- Chuck Short 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 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 Tue, 24 Feb 2009 14:02:37 -0500 + +ec2-init (0.3.3ubuntu1) jaunty; urgency=low + + * debian/init: Fix init script. + + -- Chuck Short 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 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 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 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 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 Tue, 13 Jan 2009 15:20:21 -0500 + +ec2-init (0.1) intrepid; urgency=low + + * Initial release (LP: #269434). + + -- Soren Hansen Fri, 12 Sep 2008 15:30:32 +0200 + --- cloud-init-0.5.10.orig/debian/compat +++ cloud-init-0.5.10/debian/compat @@ -0,0 +1 @@ +5 --- cloud-init-0.5.10.orig/debian/cloud-init.postrm +++ cloud-init-0.5.10/debian/cloud-init.postrm @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +dpkg-divert --package cloud-init --remove --rename --divert \ + /etc/init/ureadahead.conf.disabled /etc/init/ureadahead.conf +#DEBHELPER# --- cloud-init-0.5.10.orig/debian/cloud-init.lintian-overrides +++ cloud-init-0.5.10/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 --- cloud-init-0.5.10.orig/debian/grub-legacy-ec2.kernel-postinst +++ cloud-init-0.5.10/debian/grub-legacy-ec2.kernel-postinst @@ -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}" --- cloud-init-0.5.10.orig/debian/grub-set-default +++ cloud-init-0.5.10/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 <, 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 \n" +"Language-Team: Euskara \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." --- cloud-init-0.5.10.orig/debian/po/templates.pot +++ cloud-init-0.5.10/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 , 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 \n" +"Language-Team: LANGUAGE \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 "" --- cloud-init-0.5.10.orig/debian/po/da.po +++ cloud-init-0.5.10/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 , 2005. +# Claus Hindsgaul , 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 \n" +"Language-Team: Danish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "install the package maintainer's version" +msgstr "installr pakkevedligeholderens udgave" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "keep the local version currently installed" +msgstr "bevar din aktuelt-installerede udgave" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show the differences between the versions" +msgstr "vis forskellene mellem udgaverne" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a side-by-side difference between the versions" +msgstr "vis forskellene mellem versionerne overfor hinanden" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a 3-way difference between available versions" +msgstr "vis 3-vejs forskelle mellem de tilgngelige udgaver af filen" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "do a 3-way merge between available versions (experimental)" +msgstr "" +"udfr en 3-vejs fletning mellem de tilgngelige udgaver af filen [Meget " +"eksperimentelt]" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "start a new shell to examine the situation" +msgstr "start en ny skal for at undersge situationen" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "What would you like to do about ${BASENAME}?" +msgstr "Hvad vil du gre med ${BASENAME}?" + +#. Type: select +#. Description +#: ../grub.templates:1002 +#, fuzzy +msgid "" +"A new version of /boot/grub/menu.lst is available, but the version installed " +"currently has been locally modified." +msgstr "" +"Der er kommet en ny version af filen /boot/grub/menu.lst, men din version er " +"blevet ndret lokalt." --- cloud-init-0.5.10.orig/debian/po/fr.po +++ cloud-init-0.5.10/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 \n" +"Language-Team: French \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." --- cloud-init-0.5.10.orig/debian/po/ca.po +++ cloud-init-0.5.10/debian/po/ca.po @@ -0,0 +1,80 @@ +# ucf (debconf) translation to Catalan. +# Copyright (C) 2004 Free Software Foundation, Inc. +# Aleix Badia i Bosch , 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 \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "install the package maintainer's version" +msgstr "installa la versi del mantenidor del paquet" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "keep the local version currently installed" +msgstr "mantn la versi installada actualment" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show the differences between the versions" +msgstr "mostra les diferncies entre les versions" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a side-by-side difference between the versions" +msgstr "mostra les diferncies entre les versions" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a 3-way difference between available versions" +msgstr "mostra les diferncies entre les versions" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "do a 3-way merge between available versions (experimental)" +msgstr "" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "start a new shell to examine the situation" +msgstr "inicia una nova lnia de comandes per examinar la situaci" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "What would you like to do about ${BASENAME}?" +msgstr "Qu voleu fer respecte el ${BASNAME}?" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "" +"A new version of /boot/grub/menu.lst is available, but the version installed " +"currently has been locally modified." +msgstr "" +"Hi ha una nova versi del fitxer /boot/grub/menu.lst, per la vostra versi " +"s'ha modificat localment." --- cloud-init-0.5.10.orig/debian/po/ru.po +++ cloud-init-0.5.10/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 , 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 \n" +"Language-Team: Russian \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, но версия файла, " +"находящегося в системе, была изменёна локально." --- cloud-init-0.5.10.orig/debian/po/it.po +++ cloud-init-0.5.10/debian/po/it.po @@ -0,0 +1,81 @@ +# translation of ucf_1.18_templates.po to italian +# Copyright Luca Bruno , 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 \n" +"Language-Team: Italian \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." --- cloud-init-0.5.10.orig/debian/po/de.po +++ cloud-init-0.5.10/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 , 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 \n" +"Language-Team: German \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." --- cloud-init-0.5.10.orig/debian/po/pl.po +++ cloud-init-0.5.10/debian/po/pl.po @@ -0,0 +1,100 @@ +# translation of ucf3002.po to Polish +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Wojciech Zarba , 2007. +msgid "" +msgstr "" +"Project-Id-Version: ucf3002\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\n" +"POT-Creation-Date: 2008-01-28 08:38-0800\n" +"PO-Revision-Date: 2007-06-27 17:15+0200\n" +"Last-Translator: Wojciech Zarba \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "install the package maintainer's version" +msgstr "zainstalowanie wersji przygotowanej przez opiekuna pakietu" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "keep the local version currently installed" +msgstr "zachowanie lokalnie zainstalowanej wersji" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show the differences between the versions" +msgstr "pokazanie rnic pomidzy wersjami" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a side-by-side difference between the versions" +msgstr "pokazanie rnic - obok siebie - pomidzy wersjami" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a 3-way difference between available versions" +msgstr "pokazanie rnic pomidzy trzema dostpnymi wersjami" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "do a 3-way merge between available versions (experimental)" +msgstr "scalenie zmian pomidzy 3 dostpnymi wersjami (eksperymentalne)" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "start a new shell to examine the situation" +msgstr "uruchomienie powoki w celu zbadania sytuacji" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "What would you like to do about ${BASENAME}?" +msgstr "Prosz wybra akcj do wykonania na pliku ${BASENAME}:" + +#. Type: select +#. Description +#: ../grub.templates:1002 +#, fuzzy +msgid "" +"A new version of /boot/grub/menu.lst is available, but the version installed " +"currently has been locally modified." +msgstr "" +"Dostpna jest nowa wersja pliku /boot/grub/menu.lst, ale obecna wersja " +"zostaa lokalnie zmodyfikowana." + +#~ msgid "Modified configuration file" +#~ msgstr "Zmodyfikowany plik konfiguracyjny" + +#~ msgid "Line by line differences between versions" +#~ msgstr "Rnice linia po linii pomidzy wersjami" --- cloud-init-0.5.10.orig/debian/po/vi.po +++ cloud-init-0.5.10/debian/po/vi.po @@ -0,0 +1,91 @@ +# Vietnamese translation for UCF. +# Copyright © 2007 Free Software Foundation, Inc. +# Clytie Siddall , 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 \n" +"Language-Team: Vietnamese \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ộ." --- cloud-init-0.5.10.orig/debian/po/pt_BR.po +++ cloud-init-0.5.10/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 \n" +"Language-Team: Debian-BR Project \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." --- cloud-init-0.5.10.orig/debian/po/nl.po +++ cloud-init-0.5.10/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 \n" +"Language-Team: Nederlands \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." --- cloud-init-0.5.10.orig/debian/po/fi.po +++ cloud-init-0.5.10/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 \n" +"Language-Team: Finnish \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." --- cloud-init-0.5.10.orig/debian/po/gl.po +++ cloud-init-0.5.10/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 , 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 \n" +"Language-Team: Galician \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." --- cloud-init-0.5.10.orig/debian/po/es.po +++ cloud-init-0.5.10/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 , 2004 +# - Updated +# Javier Fernandez-Sanguino , 2007 +# +# +# Traductores, si no conoce el formato PO, merece la pena leer la +# documentacin de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traduccin al espaol, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traduccin de Debian al espaol +# http://www.debian.org/intl/spanish/coordinacion +# especialmente las notas de traduccin en +# http://www.debian.org/intl/spanish/notas +# +# - La gua de traduccin de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: ucf 1.06\n" +"Report-Msgid-Bugs-To: Source: grub@packages.debian.org\n" +"POT-Creation-Date: 2008-01-28 08:38-0800\n" +"PO-Revision-Date: 2007-06-21 13:41+0200\n" +"Last-Translator: Javier Fernandez-Sanguino \n" +"Language-Team: Debian Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "install the package maintainer's version" +msgstr "instalar la versin del responsable del paquete" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "keep the local version currently installed" +msgstr "conservar la versin local actualmente instalada" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show the differences between the versions" +msgstr "mostrar las diferencias entre las versiones" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a side-by-side difference between the versions" +msgstr "mostrar las diferencias entre las versiones lado a lado" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "show a 3-way difference between available versions" +msgstr "mostrar las diferencias entre las tres versiones" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "do a 3-way merge between available versions (experimental)" +msgstr "fusionar las tres versiones disponibles (experimental)" + +#. Type: select +#. Choices +#. Translators, please keep translations *short* (less than 65 columns) +#: ../grub.templates:1001 +msgid "start a new shell to examine the situation" +msgstr "ejecutar un nuevo intrprete para examinar la situacin" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "What would you like to do about ${BASENAME}?" +msgstr "Qu desea hacer con ${BASENAME}?" + +#. Type: select +#. Description +#: ../grub.templates:1002 +msgid "" +"A new version of /boot/grub/menu.lst is available, but the version installed " +"currently has been locally modified." +msgstr "" +"Hay una nueva versin del fichero /boot/grub/menu.lst, pero la versin que " +"est instalada ha sido modificada localmente." --- cloud-init-0.5.10.orig/debian/po/sv.po +++ cloud-init-0.5.10/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 , 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 \n" +"Language-Team: Swedish \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." --- cloud-init-0.5.10.orig/debian/po/ja.po +++ cloud-init-0.5.10/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 \n" +"Language-Team: Japanese \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 の新しいバージョンが利用可能ですが、現在イン" +"ストールされているバージョンは、ローカルで変更されています。" --- cloud-init-0.5.10.orig/debian/po/POTFILES.in +++ cloud-init-0.5.10/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] grub.templates --- cloud-init-0.5.10.orig/debian/po/pt.po +++ cloud-init-0.5.10/debian/po/pt.po @@ -0,0 +1,82 @@ +# Portuguese translation of ucf's debconf messages. +# 2007, Pedro Ribeiro +# Bruno Queiros , 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 \n" +"Language-Team: Portuguese \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." --- cloud-init-0.5.10.orig/debian/po/cs.po +++ cloud-init-0.5.10/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 \n" +"Language-Team: Czech \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." --- cloud-init-0.5.10.orig/cloudinit/DataSourceEc2.py +++ cloud-init-0.5.10/cloudinit/DataSourceEc2.py @@ -20,6 +20,7 @@ import socket import urllib2 import time +import sys import boto_utils class DataSourceEc2(DataSource.DataSource): @@ -100,20 +101,37 @@ except: return 'http://archive.ubuntu.com/ubuntu/' - def wait_for_metadata_service(self, sleeps = 10): + + def wait_for_metadata_service(self, sleeps = 100): sleeptime = 1 + address = '169.254.169.254' + starttime = time.time() + + url="http://%s/%s/meta-data/instance-id" % (address,self.api_ver) for x in range(sleeps): - s = socket.socket() + # given 100 sleeps, this ends up total sleep time of 1050 sec + sleeptime=int(x/5)+1 + + reason = "" try: - address = '169.254.169.254' - port = 80 - s.connect((address,port)) - s.close() - return True - except socket.error, e: - print "sleeping %s" % sleeptime - time.sleep(sleeptime) - #timeout = timeout * 2 + req = urllib2.Request(url) + resp = urllib2.urlopen(req, timeout=2) + if resp.read() != "": return True + reason = "empty data [%s]" % resp.getcode() + except urllib2.HTTPError, e: + reason = "http error [%s]" % e.code + except urllib2.URLError, e: + reason = "url error [%s]" % e.reason + + if x == 0: + sys.stderr.write("waiting for metadata service at %s\n" % url) + + sys.stderr.write(" %s [%02s/%s]: %s\n" % + (time.strftime("%H:%M:%S"), x+1, sleeps, reason)) + time.sleep(sleeptime) + + sys.stderr.write("giving up on md after %i seconds\n" % + int(time.time()-starttime)) return False def get_public_ssh_keys(self): --- cloud-init-0.5.10.orig/cloudinit/CloudConfig.py +++ cloud-init-0.5.10/cloudinit/CloudConfig.py @@ -48,6 +48,7 @@ self.add_handler('config-mounts') self.add_handler('config-puppet') self.add_handler('config-misc') + self.add_handler('config-grub') def get_config_obj(self,cfgfile): f=file(cfgfile) @@ -125,6 +126,13 @@ for e in errors: warn("Source Error: %s\n" % ':'.join(e)) + dconf_sel = util.get_cfg_option_str(self.cfg, 'debconf_selections', False) + if dconf_sel: + try: + util.subp(('debconf-set-selections', '-'), dconf_sel) + except: + warn("Failed to run debconf-set-selections") + pkglist = [] if 'packages' in self.cfg: if isinstance(self.cfg['packages'],list): @@ -265,7 +273,7 @@ # handle 'mounts' # these are our default set of mounts - defmnts = [ [ "ephemeral0", "/mnt", "auto", "defaults", "0", "0" ], + defmnts = [ [ "ephemeral0", "/mnt", "auto", "defaults,nobootwait", "0", "0" ], [ "swap", "none", "swap", "sw", "0", "0" ] ] # fs_spec, fs_file, fs_vfstype, fs_mntops, fs-freq, fs_passno @@ -389,8 +397,41 @@ try: util.subp(("mount","-a")) except: pass - + #def handle_config_grub(name,cfg,cloud,log,args): + def h_config_grub(self,name,args): + idevs=None + idevs_empty=None + + if "grub-dpkg" in self.cfg: + idevs=util.get_cfg_option_str(self.cfg["grub-dpkg"], + "grub-pc/install_devices",None) + idevs_empty=util.get_cfg_option_str(self.cfg["grub-dpkg"], + "grub-pc/install_devices_empty",None) + + if os.path.exists("/dev/sda1") and not os.path.exists("/dev/sda"): + if idevs == None: idevs="" + if idevs_empty == None: idevs_empty="true" + else: + if idevs_empty == None: idevs_empty="false" + if idevs == None: + idevs = "/dev/sda" + for dev in ( "/dev/sda", "/dev/vda", "/dev/sda1", "/dev/vda1"): + if os.path.exists(dev): + idevs = dev + break + + # now idevs and idevs_empty are set to determined values + # or, those set by user + + dconf_sel = "grub-pc grub-pc/install_devices string %s\n" % idevs + \ + "grub-pc grub-pc/install_devices_empty boolean %s\n" % idevs_empty + + try: + util.subp(('debconf-set-selections'), dconf_sel) + except: + warn("Failed to run debconf-set-selections for grub-dpkg") + warn(traceback.format_exc()) def apply_credentials(keys, user, disable_root): --- cloud-init-0.5.10.orig/upstart/cloud-run-user-script.conf +++ cloud-init-0.5.10/upstart/cloud-run-user-script.conf @@ -1,8 +1,16 @@ # cloud-run-user-script - runs user scripts found in user-data, that are # stored in /var/lib/cloud/scripts by the initial cloudinit upstart job +# we want this to run after all other cloud-init/cloud-config jobs have run description "execute cloud user scripts" -start on (stopped rc RUNLEVEL=[2345] and stopped cloud-config-misc) +start on (stopped rc RUNLEVEL=[2345] \ + and stopped cloud-apt-update-upgrade \ + and stopped cloud-config-misc \ + and stopped cloud-config-mounts \ + and stopped cloud-config-puppet \ + and stopped cloud-config-ssh \ + and stopped cloud-disable-ec2-metadata ) + console output task --- cloud-init-0.5.10.orig/doc/examples/cloud-config.txt +++ cloud-init-0.5.10/doc/examples/cloud-config.txt @@ -175,3 +175,17 @@ - [ sh, -c, echo "=========hello world'=========" ] - ls -l /root - [ wget, "http://slashdot.org", -O, /tmp/index.html ] + +# Provide debconf answers +# +# See debconf-set-selections man page. +# +# Default: none +# +debconf_selections: | # Need to perserve newlines + # Force debconf priority to critical. + debconf debconf/priority select critical + + # Override default frontend to readline, but allow user to select. + debconf debconf/frontend select readline + debconf debconf/frontend seen false --- cloud-init-0.5.10.orig/doc/examples/cloud-config-TODO.txt +++ cloud-init-0.5.10/doc/examples/cloud-config-TODO.txt @@ -17,19 +17,3 @@ # (run debconf at a critical priority) - content: | DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt -p critical|| true"; - -# Provide debconf answers -# -# See debconf-set-selections man page. -# -# Default: none -# -debconf_selections: | # Need to perserve newlines - # Force debconf priority to critical. - debconf debconf/priority select critical - - # Override default frontend to readline, but allow user to select. - debconf debconf/frontend select readline - debconf debconf/frontend seen false - -