← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1073077] Re: zsh complains about locale_warn on launch

 

This bug was fixed in the package cloud-init - 0.7.1-0ubuntu1

---------------
cloud-init (0.7.1-0ubuntu1) raring; urgency=low

  * New upstream release.
    * landscape: install landscape-client package if not installed.
      only take action if cloud-config is present (LP: #1066115)
    * landscape: restart landscape after install or config (LP: #1070345)
    * multipart/archive: do not fail on unknown headers in multipart
      mime or cloud-archive config (LP: #1065116).
    * tools/Z99-cloud-locale-test.sh: avoid warning when user's shell is
      zsh (LP: #1073077)
    * fix stack trace when unknown user-data input had unicode (LP: #1075756)
    * split 'apt-update-upgrade' config module into 'apt-configure' and
      'package-update-upgrade-install'.  The 'package-update-upgrade-install'
      will be a cross distro module.
    * fix bug where cloud-config from user-data could not affect system_info
      settings (LP: #1076811)
    * add yum_add_repo configuration module for adding additional yum repos
    * fix public key importing with config-drive-v2 datasource (LP: #1077700)
    * handle renaming and fixing up of marker names (LP: #1075980)
      this relieves that burden from the distro/packaging.
    * group config: fix how group members weren't being translated correctly
      when the group: [member, member...] format was used (LP: #1077245)
    * work around an issue with boto > 0.6.0 that lazy loaded the return from
      get_instance_metadata().  This resulted in failure for cloud-init to
      install ssh keys. (LP: #1068801)
    * add power_state_change config module for shutting down stystem after
      cloud-init finishes. (LP: #1064665)
 -- Scott Moser <smoser@xxxxxxxxxx>   Wed, 14 Nov 2012 15:18:50 -0500

** Changed in: cloud-init (Ubuntu)
       Status: Triaged => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1073077

Title:
  zsh complains about locale_warn on launch

Status in Init scripts for use on cloud images:
  Fix Released
Status in “cloud-init” package in Ubuntu:
  Fix Released
Status in “zsh” package in Ubuntu:
  New
Status in “cloud-init” source package in Precise:
  Triaged
Status in “cloud-init” source package in Quantal:
  Triaged

Bug description:
  == SRU Information ==
  [Impact] 
   * Users who select zsh as shell and invoke /etc/profile.d scripts
     see an error message like:
      locale_warn:13: * not found
   * This contained fix makes that error message go away, and makes
     the Z99-cloud-locale-test.sh script in /etc/profile.d function
     properly with zsh.
   * The fix adds new code to run 'emulate -L sh' if and only if the variable
     ZSH_NAME is defined (which is only likely to be true if shell is zsh).
     Per zshbuiltins(1), '-L' to 'emulate' indicates that the change in
     behavior should be limited to the containing function.

  [Test Case]
   * launch cloud-image instance, get IP address and set 'IP' for use below.
   * install zsh, change the 'ubuntu' user's shell
       LC_ALL=en_US.UTF-8 ssh ubuntu@$IP \
          "sudo DEBIAN_FRONTEND=noninteractive apt-get install -y zsh"
   * problem is then reproduced with:
       LC_ALL=fr_FR.UTF-8 zsh /etc/profile.d/Z99-cloud-locale-test.sh
     Instead of seeing a message about invalid locale and how to fix it, the
     user will see:
       locale_warn:13: * not found

  [Regression Potential] 
   * chance for regression is low, since the only real change is contained
     with a condition that will limit it to the case where the shell is zsh.
   * If there was fallout, it would one of:
     * 'emulate -L' being run with non-zsh shell, likely resulting in an error
       message but nothing worse.
     * user's zsh shell being changed to 'emulate sh' (if the '-L' did not
       get applied correctly)

  == End SRU Information ==

  
  zsh complains if an '=' occurs in a suffix or prefix shell parameter expansion.

    $ sh -c 'f="foo=bar"; echo ${f%%=*}'
    foo
    $ bash -c 'f="foo=bar"; echo ${f%%=*}'
    foo
    $ zsh -c 'f="foo=bar"; echo ${f%%=*}'
    zsh:1: * not found

  It is work-aroundable by escaping the '=' in the shell suffix match with a '\'. Ie:
    $ zsh -c 'f="foo=bar"; echo ${f%%\=*}'
    foo

  == original bug report ==

  After upgrading my Amazon machine to Ubuntu 12.04, every time I run zsh I get the following output:
      locale_warn:13: * not found

  Apparenlty this is caused by the file /etc/profile.d/Z99-cloud-locale-
  test.sh in the cloud-init package. zsh always outputs an error when a
  glob like * fails to match any files.

  ProblemType: Bug
  DistroRelease: Ubuntu 12.04
  Package: cloud-init 0.6.3-0ubuntu1
  ProcVersionSignature: Ubuntu 3.2.0-32.51-virtual 3.2.30
  Uname: Linux 3.2.0-32-virtual i686
  ApportVersion: 2.0.1-0ubuntu14
  Architecture: i386
  Date: Tue Oct 30 11:03:46 2012
  Ec2AMI: ami-fb9ca98f
  Ec2AMIManifest: (unknown)
  Ec2AvailabilityZone: eu-west-1c
  Ec2InstanceType: c1.medium
  Ec2Kernel: aki-4deec439
  Ec2Ramdisk: unavailable
  PackageArchitecture: all
  ProcEnviron:
   TERM=xterm
   PATH=(custom, user)
   LANG=en_GB.UTF-8
   SHELL=/usr/bin/zsh
  SourcePackage: cloud-init
  UpgradeStatus: Upgraded to precise on 2012-10-29 (0 days ago)

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1073077/+subscriptions