| Message ID | cover.1776957777.git.vivien@planete-kraus.eu (mailing list archive) |
|---|---|
| Headers |
Return-Path: <libc-alpha-bounces~patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 148404B8895A for <patchwork@sourceware.org>; Thu, 23 Apr 2026 16:05:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 148404B8895A Authentication-Results: sourceware.org; dkim=pass (2048-bit key, secure) header.d=planete-kraus.eu header.i=@planete-kraus.eu header.a=rsa-sha1 header.s=albinoniA header.b=OCLU4rBA X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from planete-kraus.eu (planete-kraus.eu [IPv6:2a00:5881:4008:2810::309]) by sourceware.org (Postfix) with ESMTPS id 522954BA23CC for <libc-alpha@sourceware.org>; Thu, 23 Apr 2026 16:04:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 522954BA23CC Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=planete-kraus.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=planete-kraus.eu ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 522954BA23CC Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:5881:4008:2810::309 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776960282; cv=none; b=qpvWbn8efN0BulQBPxFxG1CH/wRmbBmsBRxi1H4ziOEaFwUkLdfGBJo0K7k0xzyOzasRXpHBlRPam0AXcRAvMbBDNJMRyS6nfjV7Q7ak/xrqcN6BQIoB95JOefpMXX5FhqgcuGR+tRyGNlTOKFP1z9qsGb0clqXtnOajj5dXZSI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776960282; c=relaxed/simple; bh=v/2LX1TNNwYqcFtRQYuihxWo9KxcS+sI4JXa1Tx6B84=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=IVg/oOqZjjGlUEN4JJNZroidi+jH2D0XObdSjjsXE0jvcmdHXaEmgoiarkSucQCRb7R0cFk9UYTQNNhMiTWmAUcZJN9AYZh1wsMuabn3DIL9ERUrWW1axbvhGPWNZGl3XV/DpkgI9z1cNAbhskIBxqhVexJG9fLgtK7W8EAt6lw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 522954BA23CC Received: from planete-kraus.eu (localhost [127.0.0.1]) by planete-kraus.eu (OpenSMTPD) with ESMTP id 7ba4c486; Thu, 23 Apr 2026 16:04:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=planete-kraus.eu; h=from :to:cc:subject:date:message-id:mime-version:content-type :content-transfer-encoding; s=albinoniA; bh=VZH9AZfFUwa7zvdhoQyn C5R9VPo=; b=OCLU4rBAL2f1Ayg6eP3NdlQ7890G68YANqNDyDH+ijgX8Srmabko +OkeEc6ymCYPBOg1GjbKsyKd9yOGoBc7M9dHTmSma+OoIGurtMmGxy7SzLHFo6tu CaTYZr6yorYeZ1hKyrwHHZ9JPvLw/K2J2Rrfn7zAzSNneohljUXIN+9SSybt/EVj dOC4zBSSQiKbE6/rvmIibF1wICCGV24nCEVYgqr1vFT2w9Yy/FLfcdzjv49VlS+B /ZHuy7lgocsoGsHU18SioPK7t1Z8KOsuTy+fFQYCCAmGWligsGHUrDFjl5Qyyivs rrqUotLB8ZHYX7ZrUxLjRnLc8reu7gFbsg== Received: by planete-kraus.eu (OpenSMTPD) with ESMTPSA id 64e80ced (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO); Thu, 23 Apr 2026 16:04:35 +0000 (UTC) From: Vivien Kraus <vivien@planete-kraus.eu> To: adhemerval.zanella@linaro.org, libc-alpha@sourceware.org Cc: Vivien Kraus <vivien@planete-kraus.eu> Subject: [PATCH v22 0/9] Support translated long option names in getopt and argp Date: Thu, 23 Apr 2026 18:03:58 +0200 Message-ID: <cover.1776957777.git.vivien@planete-kraus.eu> X-Mailer: git-send-email 2.52.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, JMQ_SPF_NEUTRAL, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list <libc-alpha.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=subscribe> Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org |
| Series |
Support translated long option names in getopt and argp
|
|
Message
Vivien Kraus
April 23, 2026, 4:03 p.m. UTC
Dear glibc developers, Since there is a new libc.abilist, here is an updated series. 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 argp: do not display option name translations if __libc_enable_secure posix: check for collisions in getopt_long posix: Add a script for static validation of getopt_long PO files posix, argp: Support multiple long option name translations NEWS | 10 + argp/Makefile | 19 ++ argp/argp-help.c | 142 +++++++- argp/argp-parse.c | 1 + argp/tst-argphelp-localized.c | 141 ++++++++ argp/tst-argphelp-localized.po | 26 ++ argp/tst-argpusage-localized.c | 82 +++++ manual/argp.texi | 25 +- manual/getopt.texi | 80 ++++- manual/install.texi | 7 +- posix/Makefile | 52 ++- posix/Versions | 4 + posix/bits/getopt_ext.h | 4 + posix/check-getopt-translations.pl | 199 +++++++++++ posix/getopt.c | 323 +++++++++++++++++- posix/getopt1.c | 114 ++++++- posix/getopt_int.h | 22 +- .../standalone-multiple-getopt-collisions.po | 45 +++ posix/tst-check-getopt-translations.sh | 61 ++++ posix/tst-getopt_long_collision.c | 130 +++++++ posix/tst-getopt_long_collision.po | 32 ++ posix/tstgetoptl.c | 183 ++++++++++ posix/tstgetoptl.po | 26 ++ sysdeps/mach/hurd/i386/libc.abilist | 2 + sysdeps/mach/hurd/x86_64/libc.abilist | 2 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + sysdeps/unix/sysv/linux/arc/libc.abilist | 2 + sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 + sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 + sysdeps/unix/sysv/linux/csky/libc.abilist | 2 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + .../sysv/linux/loongarch/ilp32/libc.abilist | 2 + .../sysv/linux/loongarch/lp64/libc.abilist | 2 + .../sysv/linux/m68k/coldfire/libc.abilist | 2 + .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + .../sysv/linux/microblaze/be/libc.abilist | 2 + .../sysv/linux/microblaze/le/libc.abilist | 2 + .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 + .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + .../sysv/linux/mips/mips64/n32/libc.abilist | 2 + .../sysv/linux/mips/mips64/n64/libc.abilist | 2 + sysdeps/unix/sysv/linux/or1k/libc.abilist | 2 + .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 + .../powerpc/powerpc32/nofpu/libc.abilist | 2 + .../linux/powerpc/powerpc64/be/libc.abilist | 2 + .../linux/powerpc/powerpc64/le/libc.abilist | 2 + .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 + .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 + sysdeps/unix/sysv/linux/s390/libc.abilist | 2 + sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 + sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 + .../sysv/linux/sparc/sparc32/libc.abilist | 2 + .../sysv/linux/sparc/sparc64/libc.abilist | 2 + .../unix/sysv/linux/x86_64/64/libc.abilist | 2 + .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 + 57 files changed, 1744 insertions(+), 52 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-check-getopt-translations.sh 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: 5880459251e74f2471a5a45c90aa6494756ac4bf
Comments
On 4/23/26 12:03 PM, Vivien Kraus wrote: > Dear glibc developers, > > Since there is a new libc.abilist, here is an updated series. I just want to comment here at the high-level. The series was discussed in the Monday patch queue review where we look for reviewers. The comments I want to make here are as follows: * I personally believe, and have empathy for the desire to provide localized interfacess, that we should support enabling this feature. * That is not to say that there aren't concerns, particularly around translations that might bee used as an attack surface with confusing localized names. The series contains some mitigations for this. I would like to see and will support continued review of this series in order to make forward progress towards inclusion in glibc. However, right now my attention and energy is being focused on the glibc security team reviews whose rate has gone up in 2026. My request is to please be patient with the developers as we continue to review this series. Thank you! > 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 > argp: do not display option name translations if __libc_enable_secure > posix: check for collisions in getopt_long > posix: Add a script for static validation of getopt_long PO files > posix, argp: Support multiple long option name translations > > NEWS | 10 + > argp/Makefile | 19 ++ > argp/argp-help.c | 142 +++++++- > argp/argp-parse.c | 1 + > argp/tst-argphelp-localized.c | 141 ++++++++ > argp/tst-argphelp-localized.po | 26 ++ > argp/tst-argpusage-localized.c | 82 +++++ > manual/argp.texi | 25 +- > manual/getopt.texi | 80 ++++- > manual/install.texi | 7 +- > posix/Makefile | 52 ++- > posix/Versions | 4 + > posix/bits/getopt_ext.h | 4 + > posix/check-getopt-translations.pl | 199 +++++++++++ > posix/getopt.c | 323 +++++++++++++++++- > posix/getopt1.c | 114 ++++++- > posix/getopt_int.h | 22 +- > .../standalone-multiple-getopt-collisions.po | 45 +++ > posix/tst-check-getopt-translations.sh | 61 ++++ > posix/tst-getopt_long_collision.c | 130 +++++++ > posix/tst-getopt_long_collision.po | 32 ++ > posix/tstgetoptl.c | 183 ++++++++++ > posix/tstgetoptl.po | 26 ++ > sysdeps/mach/hurd/i386/libc.abilist | 2 + > sysdeps/mach/hurd/x86_64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arc/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 + > sysdeps/unix/sysv/linux/csky/libc.abilist | 2 + > sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + > sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + > .../sysv/linux/loongarch/ilp32/libc.abilist | 2 + > .../sysv/linux/loongarch/lp64/libc.abilist | 2 + > .../sysv/linux/m68k/coldfire/libc.abilist | 2 + > .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + > .../sysv/linux/microblaze/be/libc.abilist | 2 + > .../sysv/linux/microblaze/le/libc.abilist | 2 + > .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 + > .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n32/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/or1k/libc.abilist | 2 + > .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 + > .../powerpc/powerpc32/nofpu/libc.abilist | 2 + > .../linux/powerpc/powerpc64/be/libc.abilist | 2 + > .../linux/powerpc/powerpc64/le/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/s390/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 + > .../sysv/linux/sparc/sparc32/libc.abilist | 2 + > .../sysv/linux/sparc/sparc64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 + > 57 files changed, 1744 insertions(+), 52 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-check-getopt-translations.sh > 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: 5880459251e74f2471a5a45c90aa6494756ac4bf
Dear glibc developers, I am still waiting for your feedback. Best regards, Vivien
Dear glibc developers, I am still waiting for your feedback. Best regards, Vivien Le jeudi 23 avril 2026 à 18:03 +0200, Vivien Kraus a écrit : > Dear glibc developers, > > Since there is a new libc.abilist, here is an updated series. > > 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 > argp: do not display option name translations if > __libc_enable_secure > posix: check for collisions in getopt_long > posix: Add a script for static validation of getopt_long PO files > posix, argp: Support multiple long option name translations > > NEWS | 10 + > argp/Makefile | 19 ++ > argp/argp-help.c | 142 +++++++- > argp/argp-parse.c | 1 + > argp/tst-argphelp-localized.c | 141 ++++++++ > argp/tst-argphelp-localized.po | 26 ++ > argp/tst-argpusage-localized.c | 82 +++++ > manual/argp.texi | 25 +- > manual/getopt.texi | 80 ++++- > manual/install.texi | 7 +- > posix/Makefile | 52 ++- > posix/Versions | 4 + > posix/bits/getopt_ext.h | 4 + > posix/check-getopt-translations.pl | 199 +++++++++++ > posix/getopt.c | 323 > +++++++++++++++++- > posix/getopt1.c | 114 ++++++- > posix/getopt_int.h | 22 +- > .../standalone-multiple-getopt-collisions.po | 45 +++ > posix/tst-check-getopt-translations.sh | 61 ++++ > posix/tst-getopt_long_collision.c | 130 +++++++ > posix/tst-getopt_long_collision.po | 32 ++ > posix/tstgetoptl.c | 183 ++++++++++ > posix/tstgetoptl.po | 26 ++ > sysdeps/mach/hurd/i386/libc.abilist | 2 + > sysdeps/mach/hurd/x86_64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arc/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 + > sysdeps/unix/sysv/linux/csky/libc.abilist | 2 + > sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + > sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + > .../sysv/linux/loongarch/ilp32/libc.abilist | 2 + > .../sysv/linux/loongarch/lp64/libc.abilist | 2 + > .../sysv/linux/m68k/coldfire/libc.abilist | 2 + > .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + > .../sysv/linux/microblaze/be/libc.abilist | 2 + > .../sysv/linux/microblaze/le/libc.abilist | 2 + > .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 + > .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n32/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/or1k/libc.abilist | 2 + > .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 + > .../powerpc/powerpc32/nofpu/libc.abilist | 2 + > .../linux/powerpc/powerpc64/be/libc.abilist | 2 + > .../linux/powerpc/powerpc64/le/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/s390/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 + > .../sysv/linux/sparc/sparc32/libc.abilist | 2 + > .../sysv/linux/sparc/sparc64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 + > 57 files changed, 1744 insertions(+), 52 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-check-getopt-translations.sh > 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: 5880459251e74f2471a5a45c90aa6494756ac4bf
Dear glibc developers, The test suite is still green for this series (except for a few tests that timeout on my slow machine), and I am still waiting for your feedback. I am sorry for the revision number (22 is huge). I recognize that I sent updated series in circumstances where I should not have done that. I will try and not do that in the future. I understand that this series is a little long, and so it takes some time to review it. How can I make it easier for you? In this series, I put the least important patches last. If you think they are not needed, I will remove them in the next round. What do you think? Best regards, Vivien Le jeudi 23 avril 2026 à 18:03 +0200, Vivien Kraus a écrit : > Dear glibc developers, > > Since there is a new libc.abilist, here is an updated series. > > 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 > argp: do not display option name translations if > __libc_enable_secure > posix: check for collisions in getopt_long > posix: Add a script for static validation of getopt_long PO files > posix, argp: Support multiple long option name translations > > NEWS | 10 + > argp/Makefile | 19 ++ > argp/argp-help.c | 142 +++++++- > argp/argp-parse.c | 1 + > argp/tst-argphelp-localized.c | 141 ++++++++ > argp/tst-argphelp-localized.po | 26 ++ > argp/tst-argpusage-localized.c | 82 +++++ > manual/argp.texi | 25 +- > manual/getopt.texi | 80 ++++- > manual/install.texi | 7 +- > posix/Makefile | 52 ++- > posix/Versions | 4 + > posix/bits/getopt_ext.h | 4 + > posix/check-getopt-translations.pl | 199 +++++++++++ > posix/getopt.c | 323 > +++++++++++++++++- > posix/getopt1.c | 114 ++++++- > posix/getopt_int.h | 22 +- > .../standalone-multiple-getopt-collisions.po | 45 +++ > posix/tst-check-getopt-translations.sh | 61 ++++ > posix/tst-getopt_long_collision.c | 130 +++++++ > posix/tst-getopt_long_collision.po | 32 ++ > posix/tstgetoptl.c | 183 ++++++++++ > posix/tstgetoptl.po | 26 ++ > sysdeps/mach/hurd/i386/libc.abilist | 2 + > sysdeps/mach/hurd/x86_64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arc/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 + > sysdeps/unix/sysv/linux/csky/libc.abilist | 2 + > sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + > sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + > .../sysv/linux/loongarch/ilp32/libc.abilist | 2 + > .../sysv/linux/loongarch/lp64/libc.abilist | 2 + > .../sysv/linux/m68k/coldfire/libc.abilist | 2 + > .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + > .../sysv/linux/microblaze/be/libc.abilist | 2 + > .../sysv/linux/microblaze/le/libc.abilist | 2 + > .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 + > .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n32/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/or1k/libc.abilist | 2 + > .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 + > .../powerpc/powerpc32/nofpu/libc.abilist | 2 + > .../linux/powerpc/powerpc64/be/libc.abilist | 2 + > .../linux/powerpc/powerpc64/le/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/s390/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 + > .../sysv/linux/sparc/sparc32/libc.abilist | 2 + > .../sysv/linux/sparc/sparc64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 + > 57 files changed, 1744 insertions(+), 52 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-check-getopt-translations.sh > 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: 5880459251e74f2471a5a45c90aa6494756ac4bf
Dear glibc developers, The test suite still passes. Best regards, Vivien Le jeudi 23 avril 2026 à 18:03 +0200, Vivien Kraus a écrit : > Dear glibc developers, > > Since there is a new libc.abilist, here is an updated series. > > 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 > argp: do not display option name translations if > __libc_enable_secure > posix: check for collisions in getopt_long > posix: Add a script for static validation of getopt_long PO files > posix, argp: Support multiple long option name translations > > NEWS | 10 + > argp/Makefile | 19 ++ > argp/argp-help.c | 142 +++++++- > argp/argp-parse.c | 1 + > argp/tst-argphelp-localized.c | 141 ++++++++ > argp/tst-argphelp-localized.po | 26 ++ > argp/tst-argpusage-localized.c | 82 +++++ > manual/argp.texi | 25 +- > manual/getopt.texi | 80 ++++- > manual/install.texi | 7 +- > posix/Makefile | 52 ++- > posix/Versions | 4 + > posix/bits/getopt_ext.h | 4 + > posix/check-getopt-translations.pl | 199 +++++++++++ > posix/getopt.c | 323 > +++++++++++++++++- > posix/getopt1.c | 114 ++++++- > posix/getopt_int.h | 22 +- > .../standalone-multiple-getopt-collisions.po | 45 +++ > posix/tst-check-getopt-translations.sh | 61 ++++ > posix/tst-getopt_long_collision.c | 130 +++++++ > posix/tst-getopt_long_collision.po | 32 ++ > posix/tstgetoptl.c | 183 ++++++++++ > posix/tstgetoptl.po | 26 ++ > sysdeps/mach/hurd/i386/libc.abilist | 2 + > sysdeps/mach/hurd/x86_64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arc/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 + > sysdeps/unix/sysv/linux/csky/libc.abilist | 2 + > sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + > sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + > .../sysv/linux/loongarch/ilp32/libc.abilist | 2 + > .../sysv/linux/loongarch/lp64/libc.abilist | 2 + > .../sysv/linux/m68k/coldfire/libc.abilist | 2 + > .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + > .../sysv/linux/microblaze/be/libc.abilist | 2 + > .../sysv/linux/microblaze/le/libc.abilist | 2 + > .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 + > .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n32/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/or1k/libc.abilist | 2 + > .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 + > .../powerpc/powerpc32/nofpu/libc.abilist | 2 + > .../linux/powerpc/powerpc64/be/libc.abilist | 2 + > .../linux/powerpc/powerpc64/le/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/s390/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 + > .../sysv/linux/sparc/sparc32/libc.abilist | 2 + > .../sysv/linux/sparc/sparc64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 + > 57 files changed, 1744 insertions(+), 52 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-check-getopt-translations.sh > 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: 5880459251e74f2471a5a45c90aa6494756ac4bf
Dear glibc developers, Since I now have a simple script that I can execute at night to run the test suite on all of my commits, it’s easier for me to regularly assert that my series is ready for your feedback. And today it is! Best regards, Vivien Le jeudi 23 avril 2026 à 18:03 +0200, Vivien Kraus a écrit : > Dear glibc developers, > > Since there is a new libc.abilist, here is an updated series. > > 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 > argp: do not display option name translations if __libc_enable_secure > posix: check for collisions in getopt_long > posix: Add a script for static validation of getopt_long PO files > posix, argp: Support multiple long option name translations > > NEWS | 10 + > argp/Makefile | 19 ++ > argp/argp-help.c | 142 +++++++- > argp/argp-parse.c | 1 + > argp/tst-argphelp-localized.c | 141 ++++++++ > argp/tst-argphelp-localized.po | 26 ++ > argp/tst-argpusage-localized.c | 82 +++++ > manual/argp.texi | 25 +- > manual/getopt.texi | 80 ++++- > manual/install.texi | 7 +- > posix/Makefile | 52 ++- > posix/Versions | 4 + > posix/bits/getopt_ext.h | 4 + > posix/check-getopt-translations.pl | 199 +++++++++++ > posix/getopt.c | 323 +++++++++++++++++- > posix/getopt1.c | 114 ++++++- > posix/getopt_int.h | 22 +- > .../standalone-multiple-getopt-collisions.po | 45 +++ > posix/tst-check-getopt-translations.sh | 61 ++++ > posix/tst-getopt_long_collision.c | 130 +++++++ > posix/tst-getopt_long_collision.po | 32 ++ > posix/tstgetoptl.c | 183 ++++++++++ > posix/tstgetoptl.po | 26 ++ > sysdeps/mach/hurd/i386/libc.abilist | 2 + > sysdeps/mach/hurd/x86_64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arc/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 + > sysdeps/unix/sysv/linux/csky/libc.abilist | 2 + > sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + > sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + > .../sysv/linux/loongarch/ilp32/libc.abilist | 2 + > .../sysv/linux/loongarch/lp64/libc.abilist | 2 + > .../sysv/linux/m68k/coldfire/libc.abilist | 2 + > .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + > .../sysv/linux/microblaze/be/libc.abilist | 2 + > .../sysv/linux/microblaze/le/libc.abilist | 2 + > .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 + > .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n32/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/or1k/libc.abilist | 2 + > .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 + > .../powerpc/powerpc32/nofpu/libc.abilist | 2 + > .../linux/powerpc/powerpc64/be/libc.abilist | 2 + > .../linux/powerpc/powerpc64/le/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/s390/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 + > .../sysv/linux/sparc/sparc32/libc.abilist | 2 + > .../sysv/linux/sparc/sparc64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 + > 57 files changed, 1744 insertions(+), 52 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-check-getopt-translations.sh > 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: 5880459251e74f2471a5a45c90aa6494756ac4bf