Bug 13853 - Building libc.pot has a lot of warnings.
Summary: Building libc.pot has a lot of warnings.
Status: NEW
Alias: None
Product: glibc
Classification: Unclassified
Component: build (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-15 14:10 UTC by Carlos O'Donell
Modified: 2015-11-04 21:58 UTC (History)
1 user (show)

See Also:
Host: i686-pc-linux-gnu
Target: i686-pc-linux-gnu
Build: i686-pc-linux-gnu
Last reconfirmed:
fweimer: security-


Attachments
WIP: Use eval_gettext "..." instead of printf $"..." (3.76 KB, patch)
2012-06-14 00:02 UTC, Carlos O'Donell
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos O'Donell 2012-03-15 14:10:09 UTC
Building the libc.pot file results in a pile of warnings.

We should clean these up for 2.16 when we roll out the new libc.pot to the translation team.

A quick check shows there *are* new translations required.

Example of warnings output:
~~~
carlos@builder:~/build/glibc-2.15$ make -r PARALLELMFLAGS="" -C ../../src/glibc-2.15/po objdir=`pwd` libc.pot
make: Entering directory `/home/carlos/src/glibc-2.15/po'
../scripts/list-sources.sh .. | sed -n '/\/tst-/d;/\.[ch]\(\.in\)*$/p; /\.cxx\(\.in\)*$/p; /\.sh\(\.in\)*$/p; /\.ksh\(\.in\)*$/p; /\.bash\(\.in\)*$/p;' > libc.pot.files.new
mv -f libc.pot.files.new libc.pot.files
set `date -R`; disp="$6"; \
        sed -e 's/VERSION/2.15/' \
            -e "s/DATE/`date +'%Y-%m-%d %H:%M'$disp`/" \
            header.pot > libc.pot.new
egrep -v '\.ksh$' libc.pot.files > /home/carlos/build/glibc-2.15/tmp-libc.pot-files
cd ..; xgettext --keyword=_ --keyword=N_ \
                           --add-comments=TRANS --flag=error:3:c-format \
                           --flag=f_print:2:c-format \
                           --sort-by-file --omit-header -E -n -d - \
                           -f /home/carlos/build/glibc-2.15/tmp-libc.pot-files >> po/libc.pot.new
debug/xtrace.sh:27: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:33: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:39: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:45: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:46: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:58: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:66: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:70: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:127: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:140: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:148: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
debug/xtrace.sh:152: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:39: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:43: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:48: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:56: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:82: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:89: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:90: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:127: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:128: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:150: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:153: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:156: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:185: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:193: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/ldd.bash.in:198: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
malloc/memusage.sh:27: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
malloc/memusage.sh:33: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
malloc/memusage.sh:39: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
malloc/memusage.sh:65: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
malloc/memusage.sh:73: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
malloc/memusage.sh:77: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
malloc/memusage.sh:101: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
malloc/memusage.sh:193: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
malloc/memusage.sh:202: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
malloc/memusage.sh:215: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
catgets/gencat.c:119: warning: internationalized messages should not contain the `\v' escape sequence
egrep '\.ksh$' libc.pot.files > /home/carlos/build/glibc-2.15/tmp-libc.pot-files
cd ..; xgettext --add-comments=TRANS --language=Shell \
                           --sort-by-file --omit-header -E -n -o po/libc.pot.new -j \
                           -f /home/carlos/build/glibc-2.15/tmp-libc.pot-files po/libc.pot.new
po/libc.pot.new: warning: Charset "CHARSET" is not a portable encoding name.
                          Message conversion to user's charset might not work.
elf/sotruss.ksh:33: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:47: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:50: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:57: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:58: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:63: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:69: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:77: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:81: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:88: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:136: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
elf/sotruss.ksh:137: warning: the syntax $"..." is deprecated due to security reasons; use eval_gettext instead
po/libc.pot.new:126: warning: internationalized messages should not contain the `\v' escape sequence
rm /home/carlos/build/glibc-2.15/tmp-libc.pot-files
mv -f libc.pot.new libc.pot
make: Leaving directory `/home/carlos/src/glibc-2.15/po'
carlos@builder:~/build/glibc-2.15$ make -r PARALLELMFLAGS="" -C ../../src/glibc-2.15/po objdir=`pwd` libc.pot^C
~~~
Comment 1 Carlos O'Donell 2012-06-14 00:00:31 UTC
Moving this to 2.17. The changes are too invasive to make for 2.16 and we're already in the code freeze.

With the attached WIP patch I now get:
~~~
carloso@build4-lucid-cs:/scratch/carloso/build4-lucid-cs/build/glibc$ make -r PARALLELMFLAGS="" -C /scratch/carloso/build4-lucid-cs/src/glibc/po objdir=`pwd` libc.pot
make: Entering directory `/scratch/carloso/build4-lucid-cs/src/glibc/po'
../scripts/list-sources.sh .. | sed -n '/\/tst-/d;/\.[ch]\(\.in\)*$/p; /\.cxx\(\.in\)*$/p; /\.sh\(\.in\)*$/p; /\.ksh\(\.in\)*$/p; /\.bash\(\.in\)*$/p;' > libc.pot.files.new
mv -f libc.pot.files.new libc.pot.files
set `date -R`; disp="$6"; \
        sed -e 's/VERSION/2.15.90/' \
            -e "s/DATE/`date +'%Y-%m-%d %H:%M'$disp`/" \
            -e "s/CHARSET/UTF-8/" \
            header.pot > libc.pot.new
egrep -v '\.ksh$' libc.pot.files > /scratch/carloso/build4-lucid-cs/build/glibc/tmp-libc.pot-files
cd ..; xgettext --keyword=_ --keyword=N_ \
                           --add-comments=TRANS --flag=error:3:c-format \
                           --flag=f_print:2:c-format \
                           --sort-by-file --omit-header -E -n -d - \
                           -f /scratch/carloso/build4-lucid-cs/build/glibc/tmp-libc.pot-files >> po/libc.pot.new
catgets/gencat.c:118: internationalized messages should not contain the `\v' escape sequence
egrep '\.ksh$' libc.pot.files > /scratch/carloso/build4-lucid-cs/build/glibc/tmp-libc.pot-files
cd ..; xgettext --add-comments=TRANS --language=Shell \
                           --sort-by-file --omit-header -E -n -o po/libc.pot.new -j \
                           -f /scratch/carloso/build4-lucid-cs/build/glibc/tmp-libc.pot-files po/libc.pot.new
po/libc.pot.new:126: internationalized messages should not contain the `\v' escape sequence
rm /scratch/carloso/build4-lucid-cs/build/glibc/tmp-libc.pot-files
mv -f libc.pot.new libc.pot
make: Leaving directory `/scratch/carloso/build4-lucid-cs/src/glibc/po'
carloso@build4-lucid-cs:/scratch/carloso/build4-lucid-cs/build/glibc$
~~~

So I've fixed all of the script warnings with the exception of the `\v' usage in catgets/gencat.c:118.

The `\v' in catgets/gencat.c sparked some discussion on the list in 2007 here:
http://sources.redhat.com/ml/libc-alpha/2007-08/msg00007.html

So it looks like fixing `\v' is going to involve some code restructuring to take it out of the translated text stream.
Comment 2 Carlos O'Donell 2012-06-14 00:02:49 UTC
Created attachment 6447 [details]
WIP: Use eval_gettext "..." instead of printf $"..."
Comment 3 Carlos O'Donell 2012-11-29 15:24:12 UTC
There has been recent discussion about this fix here:
http://sourceware.org/ml/libc-alpha/2012-11/msg00708.html

Needs some more review.