[PATCH v3 0/4]

Glenn Washburn
2025-11-19T19:50:00Z

I've seen several times and believe that quite often people building GRUB
forget to run linguas.sh to download and setup the build for the external
translations. So make setting up LINGUAS happen by default when running
bootstrap. If a user does not want to setup LINGUAS it can be skipped by
running bootstrap with the existing --skip-po argument. In fact, bootstrap
already has functionality that automatically downloads a projects translations,
so switch to using that in patch #2. Also it is needed to run some extra code
because bootstrap will not add GRUB's autogenerated languages. In patch #3
simplify the LINGUAS generation and patch #4 fixes a couple issues in the
INSTALL that is dependent on patch #1.

NOTE: Instead of using the non-POSIX -r option to xargs, use a more POSIX
friendly way of ensuring that basename is not run with no arguments.

v3:
* Fix an issue where basename could be called by xargs with no arguments

v2:
* There wasn't intentionally a v1, but I accidentally created a patch
series, and then I realized that patch #2 depends on patch #1.

Glenn

Glenn Washburn (4):
bootstrap: Run linguas.sh in bootstrap epilogue
bootstrap: Migrate linguas.sh into bootstrap.conf
bootstrap: Condense and simplify LINGUAS generation
INSTALL: Fix a grammatical error

INSTALL | 25 +++++++++++--------------
bootstrap.conf | 21 +++++++++++++++++++--
2 files changed, 30 insertions(+), 16 deletions(-)

Range-diff against v2:
1: 62f0c3965921 = 1: 20d27aed572a bootstrap: Run linguas.sh in bootstrap epilogue
2: 7ffeeb595903 = 2: 6b6fed0beba3 bootstrap: Migrate linguas.sh into bootstrap.conf
3: b9bbe64cd8b8 ! 3: 3678bd68c4b6 bootstrap: Condense and simplify LINGUAS generation
@@ bootstrap.conf: bootstrap_epilogue () {
- ) | sort | uniq | xargs
- ) >po/LINGUAS
+ {
-+ ls po/*.po | xargs -L 100 basename -s .po -a
++ # NOTE: xargs has no POSIX compliant way to avoid running the program
++ # given as an argument when there are no input lines. So ensure that
++ # basename is always run with at least one argument, the empty string,
++ # and ignore the first line of output.
++ ls po/*.po | xargs -L 100 basename -s .po -a "" | tail -n +2
+ for x in $autogenerated; do
+ rm -f "po/$x.po"
+ echo "$x"
4: eb88d70454f4 = 4: c74c01d6fd85 INSTALL: Fix a grammatical error