
Le jeudi 09 décembre 2010 19:31:22, Eric Blake a écrit :
On 12/09/2010 11:21 AM, Laurent Léonard wrote:
Hi,
Here is an example of libvirt-guest output: $Running guests on default URI: test-vm $Suspending guests on default URI... $Suspending test-vm: $done
Why all the lines begin with "$" ?
Because you aren't using bash.
Bash supports $"" as a way to provide gettext translation of strings into the user's preferred location. Init scripts written for Fedora-based systems assume that /bin/sh is bash, and therefore that $"" is usable.
Dash does not understand $"" (POSIX says it has unspecified behavior), and treats it as a literal '$' followed by a normal (untranslated) "".
It's probably a nice goal to port libvirt-guests to non-bash /bin/sh, but it may take a lot more work; in particular, there are TONS of existing init scripts on Fedora that assume bash extensions, which libvirt-guests used as its starting point. And I'm not quite sure what the POSIX-compliant replacement for $"" string translation would be. There are two problems to solve - how to get xgettext to recognize a string that needs translation, and how to use gettext(1) (rather than bash's magic $"" automatically calling gettext(3)) to do the translation at runtime.
Guido Günter wrote :
Hi Laurent,
this looks great, one suggestion:
On Tue, Dec 14, 2010 at 10:49:01AM +0000, Laurent Léonard wrote:
The following commit has been merged in the experimental branch: commit 7d7aed44c56d113713547e5dd9bdbe4ab6684c00 Author: Laurent Léonard <laurent@open-minds.org> Date: Tue Dec 14 11:24:42 2010 +0100
New patch 0010-Debianize-libvirt-guests.patch
+ if ! $configured; then +- echo $"Ignoring guests on $uri URI" ++ echo "Ignoring guests on $uri URI"
It might make sense to introduce a function:
libvirt_echo() { echo $"$@" }
So that the lines above become:
if ! $configured; then libvirt_echo "Ignoring guests on $uri URI"
If we get this integrated upstream we'd only have to patch a single line which might future merging easier. We might even be able to either pick $" or just " by looking at the shell used.
What about that proposition ? -- Laurent Léonard