[PATCH v11 0/9] Support translated names in getopt and argp

Vivien Kraus vivien@planete-kraus.eu
Tue Sep 23 17:43:23 GMT 2025


Dear glibc developers,

The series still applies cleanly, and the tests still pass.

Best regards,

Vivien

Le 24/08/2025 à 18:36, Vivien Kraus a écrit :
> Dear glibc developers,
>
> You have changed the hurd ABIs so you get a new version.
>
> I also made a script to statically check that there are no collisions
> between translations and untranslated names. I found another script in
> malloc, mtrace, so I decided to use the same approach. I very much
> like any experience with Perl, sorry.
>
> What do you think?
>
> Best regards,
>
> Vivien
>
> Vivien Kraus (9):
>    posix: allow getopt_long to match translated option names
>    posix: let the getopt caller set the translation context
>    argp: document translated names in --help and --usage
>    posix: let the getopt caller choose the textdomain for translation
>    posix: do not allow option name translations for secure programs
>    posix, argp: Support deprecation of long option name translations
>    argp: do not display option name translations if __libc_enable_secure
>    posix: Add getopt_long_collision
>    posix: Add a script for static validation of getopt_long PO files
>
>   argp/Makefile                                 |  14 ++
>   argp/argp-help.c                              |  83 +++++++-
>   argp/argp-parse.c                             |   1 +
>   argp/tst-argphelp-localized.c                 | 169 +++++++++++++++
>   argp/tst-argphelp-localized.po                |  23 ++
>   argp/tst-argpusage-localized.c                |  82 ++++++++
>   manual/argp.texi                              |  25 ++-
>   manual/getopt.texi                            |  81 ++++++-
>   posix/Makefile                                |  34 +++
>   posix/Versions                                |   3 +
>   posix/bits/getopt_ext.h                       |  17 ++
>   posix/check-getopt-translations.pl            | 199 ++++++++++++++++++
>   posix/getopt.c                                | 168 +++++++++++++--
>   posix/getopt1.c                               | 102 ++++++++-
>   posix/getopt_int.h                            |  14 +-
>   .../standalone-multiple-getopt-collisions.po  |  45 ++++
>   posix/tst-getopt_long_collision.c             |  66 ++++++
>   posix/tst-getopt_long_collision.po            |  22 ++
>   posix/tstgetoptl.c                            | 127 +++++++++++
>   posix/tstgetoptl.po                           |  27 +++
>   sysdeps/mach/hurd/i386/libc.abilist           |   3 +
>   sysdeps/mach/hurd/x86_64/libc.abilist         |   3 +
>   sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   3 +
>   sysdeps/unix/sysv/linux/alpha/libc.abilist    |   3 +
>   sysdeps/unix/sysv/linux/arc/libc.abilist      |   3 +
>   sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   3 +
>   sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   3 +
>   sysdeps/unix/sysv/linux/csky/libc.abilist     |   3 +
>   sysdeps/unix/sysv/linux/hppa/libc.abilist     |   3 +
>   sysdeps/unix/sysv/linux/i386/libc.abilist     |   3 +
>   .../sysv/linux/loongarch/lp64/libc.abilist    |   3 +
>   .../sysv/linux/m68k/coldfire/libc.abilist     |   3 +
>   .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   3 +
>   .../sysv/linux/microblaze/be/libc.abilist     |   3 +
>   .../sysv/linux/microblaze/le/libc.abilist     |   3 +
>   .../sysv/linux/mips/mips32/fpu/libc.abilist   |   3 +
>   .../sysv/linux/mips/mips32/nofpu/libc.abilist |   3 +
>   .../sysv/linux/mips/mips64/n32/libc.abilist   |   3 +
>   .../sysv/linux/mips/mips64/n64/libc.abilist   |   3 +
>   sysdeps/unix/sysv/linux/or1k/libc.abilist     |   3 +
>   .../linux/powerpc/powerpc32/fpu/libc.abilist  |   3 +
>   .../powerpc/powerpc32/nofpu/libc.abilist      |   3 +
>   .../linux/powerpc/powerpc64/be/libc.abilist   |   3 +
>   .../linux/powerpc/powerpc64/le/libc.abilist   |   3 +
>   .../unix/sysv/linux/riscv/rv32/libc.abilist   |   3 +
>   .../unix/sysv/linux/riscv/rv64/libc.abilist   |   3 +
>   .../unix/sysv/linux/s390/s390-32/libc.abilist |   3 +
>   .../unix/sysv/linux/s390/s390-64/libc.abilist |   3 +
>   sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   3 +
>   sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   3 +
>   .../sysv/linux/sparc/sparc32/libc.abilist     |   3 +
>   .../sysv/linux/sparc/sparc64/libc.abilist     |   3 +
>   .../unix/sysv/linux/x86_64/64/libc.abilist    |   3 +
>   .../unix/sysv/linux/x86_64/x32/libc.abilist   |   3 +
>   54 files changed, 1361 insertions(+), 43 deletions(-)
>   create mode 100644 argp/tst-argphelp-localized.c
>   create mode 100644 argp/tst-argphelp-localized.po
>   create mode 100644 argp/tst-argpusage-localized.c
>   create mode 100644 posix/check-getopt-translations.pl
>   create mode 100644 posix/standalone-multiple-getopt-collisions.po
>   create mode 100644 posix/tst-getopt_long_collision.c
>   create mode 100644 posix/tst-getopt_long_collision.po
>   create mode 100644 posix/tstgetoptl.c
>   create mode 100644 posix/tstgetoptl.po
>
>
> base-commit: 861d04967d0bb2555153cd37ddbed7995dd4f463


More information about the Libc-alpha mailing list