GNOME Bugzilla – Bug 559528
Cannot restrict language install using LINGUAS/ALL_LINGUAS
Last modified: 2009-04-08 17:23:33 UTC
Please describe the problem: Trying to restrict language installation does not work on Solaris if shell is a real sh (no bash nor tcsh) Steps to reproduce: 1. export LINGUAS="en fr" ALL_LINGUAS="en fr" 2. ./configure 3. make Actual results: The following traces appears Making all in po Usage: grep -hblcnsviw pattern file . . . /bin/sh: en$: not found Usage: grep -hblcnsviw pattern file . . . /bin/sh: fr$: not found [...] Expected results: build only fr and en messages files Does this happen every time? yes Other information: Here is the root cause : with bash/tcsh > echo foo\^bar foo^bar > echo foo^bar foo^bar with old sh - in fact '^' is or exclusive operator $ echo foo\^bar foo^bar $ echo foo^bar bar: not found
Created attachment 122064 [details] [review] escape ^ character in grep expression
Reassigning to intltool. I don't see any point in fixing this in GIMP when the actual file is pulled in from another package. And intltool will probably reassign it to gettext ...
I'm rejecting this patch, because it was made against gimp, not intltool, and because we prefer to use quoting over \ for escaping here. I have committed a fix to SVN though. Thanks for the report.
Created attachment 132319 [details] [review] Fix quotations in Makefile.in.in The 'fix' for this bug broke other things (bug 577133). I propose the following fix for these two bugs, and am attaching it here hoping Eric could try if this work on Solaris also (tried it on Gentoo linux using bash 4.0).
Created attachment 132324 [details] [review] Same as above, but with all quotes fixed.
Ok, that was flawed, and did not work as it should. But can someone please tell me why the '^' is there to begin with? Removing it and it works still nice (at least with bash/gnu make) and I cannot find any references to what it is supposed to do.
(In reply to comment #6) > Ok, that was flawed, and did not work as it should. > > But can someone please tell me why the '^' is there to begin with? Removing it > and it works still nice (at least with bash/gnu make) and I cannot find any > references to what it is supposed to do. > It is there to provide an increased level of strictness when matching locales. Without it, both "en_US" and "leet-en_US" would match when you only want "en_US" for example. Also, unless you intend to reopen this bug, please discuss the issues in bug #577133 and not in this report, as it remains RESOLVED FIXED.