** Description changed:

- zsh complains if an '=' occurs in a suffix or prefix shell parameter
- expansion.
+ == 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.
  
-   $ 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
+ [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
- 
+   $ 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)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1073077

Title:
  zsh complains about locale_warn on launch

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to