scripts/qemu-binfmt-conf.sh | 215 1 file changed, 78 insertions(+), 137 deletions(-)
Hi,
This series reworks qemu-binfmt-conf.sh:
* Argument <CPU> from option '--systemd' is generalized to <TARGETS>, and it is
accepted for any mode (default, debian or systemd). It can be a single target
arch or a list of them.
* Option '--clear' is added, which allows to remove an already registered
target interpreter or a list of them. The implementation is functional but
partial. Please, see the corresponding commit.
* Option '--test|--dry-run' is added, which allows to execute the CHECK according
to the provided arguments, but no interpreter is configured.
* Support to set options through environment variables: QEMU_TARGETS,
QEMU_PATH, QEMU_SUFFIX, QEMU_PERSISTENT, QEMU_CREDENTIAL, QEMU_CLEAR and
QEMU_TEST.
The following changes are not backward compatible:
* Option '--persistent' no longer requires/accepts an argument.
* Option '--credential' no longer requires/accepts an argument.
* Option '--systemd' no longer requires/accepts an argument.
* Option '--qemu-path' is renamed to '--path'.
* Option '--qemu-suffix' is renamed to '--suffix'.
The functionality of all of them is untouched. Changes are related to syntax only.
The main differences compared to v3 are:
* Suggestions by Laurent Vivier regarding syntax and usage of redundant variables are
addressed.
* The same presentation format as for qemu-XXXX ("Argument Env-variable Description")
is used and defaults for envvars are shown.
* '--reset' (now '--clear') is exclusive, i.e., the list of positional arguments is used,
and no registration function is executed.
* Commas are no longer accepted as separators for TARGETS.
* The order of some patches is reorganized and some are squashed:
* v4 4/10 is new
* v3 4/10 -> v4 5/10
* v3 5/10 -> v4 6/10
* v3 6/10 and 10/10 --> v4 7/10
* v3 7/10 -> v4 8/10
* v3 8/10 and v3 9/10 --> v4 9/10
* v4 10/10 is new
Based on:
* [PATCH v3 0/10] qemu-binfmt-conf.sh
* [PATCH v2] qemu-binfmt-conf.sh: add CPUS, add --reset, make -p and -c boolean (no arg)
* [PATCH] qemu-binfmt-conf.sh: add CPUS, add --reset, make -p and -c boolean (no arg)
Regards
Unai Martinez-Corral (10):
qemu-binfmt-conf.sh: enforce safe style consistency
qemu-binfmt-conf.sh: make opts -p and -c boolean
qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT
qemu-binfmt-conf.sh: use the same presentation format as for qemu-*
qemu-binfmt-conf.sh: remove 'qemu' prefix from cli options
qemu-binfmt-conf.sh: honour QEMU_PATH and/or QEMU_SUFFIX
qemu-binfmt-conf.sh: generalize <CPU> to positional [TARGETS]
qemu-binfmt-conf.sh: add option --clear
qemu-binfmt-conf.sh: update usage()
qemu-binfmt-conf.sh: add --test|--dry-run
scripts/qemu-binfmt-conf.sh | 215
1 file changed, 78 insertions(+), 137 deletions(-)
Patchew URL: https://patchew.org/QEMU/20190311101428.GA11@765644dd90e5/
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20190311101428.GA11@765644dd90e5
Subject: [Qemu-devel] [PATCH v4 0/10] qemu-binfmt-conf.sh
=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
d8be11fa48 qemu-binfmt-conf.sh: add --test|--dry-run
eed2ee7cc9 qemu-binfmt-conf.sh: update usage()
265805545f qemu-binfmt-conf.sh: add option --clear
21298477f7 qemu-binfmt-conf.sh: generalize CPU to positional TARGETS
2b8acd4d8d qemu-binfmt-conf.sh: honour QEMU_PATH and/or QEMU_SUFFIX
35c5a1c00a qemu-binfmt-conf.sh: remove 'qemu' prefix from cli options
536212c59a qemu-binfmt-conf.sh: use the same presentation format as for qemu-*
3c5495df43 qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT
e4a74a66df qemu-binfmt-conf.sh: make opts -p and -c boolean
c70398d854 qemu-binfmt-conf.sh: enforce safe style consistency
=== OUTPUT BEGIN ===
1/10 Checking commit c70398d85463 (qemu-binfmt-conf.sh: enforce safe style consistency)
WARNING: line over 80 characters
#53: FILE: scripts/qemu-binfmt-conf.sh:299:
+ if [ "x$magic" = "x" ] || [ "x$mask" = "x" ] || [ "x$family" = "x" ] ; then
total: 0 errors, 1 warnings, 47 lines checked
Patch 1/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
2/10 Checking commit e4a74a66df91 (qemu-binfmt-conf.sh: make opts -p and -c boolean)
ERROR: line over 90 characters
#51: FILE: scripts/qemu-binfmt-conf.sh:327:
+options=$(getopt -o ds:Q:S:e:hcp -l debian,systemd:,qemu-path:,qemu-suffix:,exportdir:,help,credential,persistent -- "$@")
total: 1 errors, 0 warnings, 43 lines checked
Patch 2/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
3/10 Checking commit 3c5495df43d5 (qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT)
4/10 Checking commit 536212c59aff (qemu-binfmt-conf.sh: use the same presentation format as for qemu-*)
WARNING: line over 80 characters
#50: FILE: scripts/qemu-binfmt-conf.sh:179:
+-F|--qemu-suffix SUFFIX: add a suffix to the default interpreter name
ERROR: line over 90 characters
#51: FILE: scripts/qemu-binfmt-conf.sh:180:
+-d|--debian: don't write into /proc, generate update-binfmts templates
ERROR: line over 90 characters
#53: FILE: scripts/qemu-binfmt-conf.sh:182:
+ systemd-binfmt.service for the given CPU; if CPU is "ALL",
ERROR: line over 90 characters
#57: FILE: scripts/qemu-binfmt-conf.sh:186:
+-c|--credential: QEMU_CREDENTIAL (yes) credential and security tokens are calculated according
ERROR: line over 90 characters
#59: FILE: scripts/qemu-binfmt-conf.sh:188:
+-p|--persistent: QEMU_PERSISTENT (yes) load the interpreter and keep it in memory; all future
ERROR: line over 90 characters
#79: FILE: scripts/qemu-binfmt-conf.sh:201:
+The environment variable HOST_ARCH allows to override 'uname' to generate configuration files for a
total: 5 errors, 1 warnings, 74 lines checked
Patch 4/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
5/10 Checking commit 35c5a1c00aed (qemu-binfmt-conf.sh: remove 'qemu' prefix from cli options)
WARNING: line over 80 characters
#36: FILE: scripts/qemu-binfmt-conf.sh:180:
+-F|--suffix SUFFIX: add a suffix to the default interpreter name
ERROR: line over 90 characters
#45: FILE: scripts/qemu-binfmt-conf.sh:328:
+options=$(getopt -o ds:Q:S:e:hcp -l debian,systemd:,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
total: 1 errors, 1 warnings, 38 lines checked
Patch 5/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
6/10 Checking commit 2b8acd4d8d21 (qemu-binfmt-conf.sh: honour QEMU_PATH and/or QEMU_SUFFIX)
WARNING: line over 80 characters
#22: FILE: scripts/qemu-binfmt-conf.sh:180:
+-F|--suffix SUFFIX: QEMU_SUFFIX add a suffix to the default interpreter name
total: 0 errors, 1 warnings, 23 lines checked
Patch 6/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
7/10 Checking commit 21298477f72e (qemu-binfmt-conf.sh: generalize CPU to positional TARGETS)
ERROR: line over 90 characters
#76: FILE: scripts/qemu-binfmt-conf.sh:198:
+TARGETS QEMU_TARGETS A single arch name or a list of them (see all names below);
WARNING: line over 80 characters
#86: FILE: scripts/qemu-binfmt-conf.sh:205:
+-s|--systemd: don't write into /proc, generate file(s) for
ERROR: line over 90 characters
#87: FILE: scripts/qemu-binfmt-conf.sh:206:
+ systemd-binfmt.service; environment variable HOST_ARCH
ERROR: line over 90 characters
#88: FILE: scripts/qemu-binfmt-conf.sh:207:
+ allows to override 'uname' to generate configuration files
WARNING: line over 80 characters
#89: FILE: scripts/qemu-binfmt-conf.sh:208:
+ for a different architecture than the current one.
ERROR: line over 90 characters
#139: FILE: scripts/qemu-binfmt-conf.sh:351:
+options=$(getopt -o dsQ:S:e:hcp -l debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
total: 4 errors, 2 warnings, 135 lines checked
Patch 7/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
8/10 Checking commit 265805545ff8 (qemu-binfmt-conf.sh: add option --clear)
WARNING: line over 80 characters
#33: FILE: scripts/qemu-binfmt-conf.sh:199:
+ if empty, configure/clear all known targets;
ERROR: line over 90 characters
#44: FILE: scripts/qemu-binfmt-conf.sh:211:
+-c|--clear: QEMU_CLEAR (yes) remove registered interpreters for target TARGETS;
WARNING: line over 80 characters
#69: FILE: scripts/qemu-binfmt-conf.sh:356:
+ find /proc/sys/fs/binfmt_misc/ -type f -name $names -exec sh -c 'printf %s -1 > {}' \;
ERROR: line over 90 characters
#82: FILE: scripts/qemu-binfmt-conf.sh:372:
+options=$(getopt -o cdsQ:S:e:hcp -l clear,debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
total: 2 errors, 2 warnings, 76 lines checked
Patch 8/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
9/10 Checking commit eed2ee7cc9c8 (qemu-binfmt-conf.sh: update usage())
ERROR: line over 90 characters
#29: FILE: scripts/qemu-binfmt-conf.sh:204:
+-p|--persistent: QEMU_PERSISTENT (yes) load the interpreter and keep it in memory; all future
ERROR: line over 90 characters
#31: FILE: scripts/qemu-binfmt-conf.sh:206:
+-c|--credential: QEMU_CREDENTIAL (yes) credential and security tokens are calculated according
WARNING: line over 80 characters
#41: FILE: scripts/qemu-binfmt-conf.sh:212:
+-s|--systemd: don't write into /proc, generate file(s) for
ERROR: line over 90 characters
#42: FILE: scripts/qemu-binfmt-conf.sh:213:
+ systemd-binfmt.service; environment variable HOST_ARCH
ERROR: line over 90 characters
#43: FILE: scripts/qemu-binfmt-conf.sh:214:
+ allows to override 'uname' to generate configuration files
WARNING: line over 80 characters
#44: FILE: scripts/qemu-binfmt-conf.sh:215:
+ for a different architecture than the current one.
ERROR: line over 90 characters
#45: FILE: scripts/qemu-binfmt-conf.sh:216:
+-d|--debian: don't write into /proc, generate update-binfmts templates
total: 5 errors, 2 warnings, 45 lines checked
Patch 9/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
10/10 Checking commit d8be11fa4837 (qemu-binfmt-conf.sh: add --test|--dry-run)
WARNING: line over 80 characters
#20: FILE: scripts/qemu-binfmt-conf.sh:199:
+ if empty, configure/clear all known targets.
ERROR: line over 90 characters
#28: FILE: scripts/qemu-binfmt-conf.sh:211:
+-t|--test|--dry-run: QEMU_TEST (yes) test the setup with the provided arguments, but do not
ERROR: line over 90 characters
#58: FILE: scripts/qemu-binfmt-conf.sh:380:
+options=$(getopt -o tcdsQ:S:e:hcp -l test,dry-runclear,debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
total: 2 errors, 1 warnings, 60 lines checked
Patch 10/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===
Test command exited with code: 1
The full log is available at
http://patchew.org/logs/20190311101428.GA11@765644dd90e5/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Patchew URL: https://patchew.org/QEMU/20190311101428.GA11@765644dd90e5/
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20190311101428.GA11@765644dd90e5
Subject: [Qemu-devel] [PATCH v4 0/10] qemu-binfmt-conf.sh
=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
t [tag update] patchew/20190311101428.GA11@765644dd90e5 -> patchew/20190311101428.GA11@765644dd90e5
Switched to a new branch 'test'
04f54aebb7 qemu-binfmt-conf.sh: add --test|--dry-run
fd47672add qemu-binfmt-conf.sh: update usage()
9a07973da4 qemu-binfmt-conf.sh: add option --clear
1debedf8e2 qemu-binfmt-conf.sh: generalize CPU to positional TARGETS
89024f269c qemu-binfmt-conf.sh: honour QEMU_PATH and/or QEMU_SUFFIX
996793bc94 qemu-binfmt-conf.sh: remove 'qemu' prefix from cli options
8100c0cdfc qemu-binfmt-conf.sh: use the same presentation format as for qemu-*
0516d54354 qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT
a59a10b55f qemu-binfmt-conf.sh: make opts -p and -c boolean
ae2b7e65b0 qemu-binfmt-conf.sh: enforce safe style consistency
=== OUTPUT BEGIN ===
1/10 Checking commit ae2b7e65b0a6 (qemu-binfmt-conf.sh: enforce safe style consistency)
WARNING: line over 80 characters
#53: FILE: scripts/qemu-binfmt-conf.sh:299:
+ if [ "x$magic" = "x" ] || [ "x$mask" = "x" ] || [ "x$family" = "x" ] ; then
total: 0 errors, 1 warnings, 47 lines checked
Patch 1/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
2/10 Checking commit a59a10b55f0d (qemu-binfmt-conf.sh: make opts -p and -c boolean)
ERROR: line over 90 characters
#51: FILE: scripts/qemu-binfmt-conf.sh:327:
+options=$(getopt -o ds:Q:S:e:hcp -l debian,systemd:,qemu-path:,qemu-suffix:,exportdir:,help,credential,persistent -- "$@")
total: 1 errors, 0 warnings, 43 lines checked
Patch 2/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
3/10 Checking commit 0516d54354e5 (qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT)
4/10 Checking commit 8100c0cdfc78 (qemu-binfmt-conf.sh: use the same presentation format as for qemu-*)
WARNING: line over 80 characters
#50: FILE: scripts/qemu-binfmt-conf.sh:179:
+-F|--qemu-suffix SUFFIX: add a suffix to the default interpreter name
ERROR: line over 90 characters
#51: FILE: scripts/qemu-binfmt-conf.sh:180:
+-d|--debian: don't write into /proc, generate update-binfmts templates
ERROR: line over 90 characters
#53: FILE: scripts/qemu-binfmt-conf.sh:182:
+ systemd-binfmt.service for the given CPU; if CPU is "ALL",
ERROR: line over 90 characters
#57: FILE: scripts/qemu-binfmt-conf.sh:186:
+-c|--credential: QEMU_CREDENTIAL (yes) credential and security tokens are calculated according
ERROR: line over 90 characters
#59: FILE: scripts/qemu-binfmt-conf.sh:188:
+-p|--persistent: QEMU_PERSISTENT (yes) load the interpreter and keep it in memory; all future
ERROR: line over 90 characters
#79: FILE: scripts/qemu-binfmt-conf.sh:201:
+The environment variable HOST_ARCH allows to override 'uname' to generate configuration files for a
total: 5 errors, 1 warnings, 74 lines checked
Patch 4/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
5/10 Checking commit 996793bc9412 (qemu-binfmt-conf.sh: remove 'qemu' prefix from cli options)
WARNING: line over 80 characters
#36: FILE: scripts/qemu-binfmt-conf.sh:180:
+-F|--suffix SUFFIX: add a suffix to the default interpreter name
ERROR: line over 90 characters
#45: FILE: scripts/qemu-binfmt-conf.sh:328:
+options=$(getopt -o ds:Q:S:e:hcp -l debian,systemd:,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
total: 1 errors, 1 warnings, 38 lines checked
Patch 5/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
6/10 Checking commit 89024f269c12 (qemu-binfmt-conf.sh: honour QEMU_PATH and/or QEMU_SUFFIX)
WARNING: line over 80 characters
#23: FILE: scripts/qemu-binfmt-conf.sh:180:
+-F|--suffix SUFFIX: QEMU_SUFFIX add a suffix to the default interpreter name
total: 0 errors, 1 warnings, 23 lines checked
Patch 6/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
7/10 Checking commit 1debedf8e243 (qemu-binfmt-conf.sh: generalize CPU to positional TARGETS)
ERROR: line over 90 characters
#76: FILE: scripts/qemu-binfmt-conf.sh:198:
+TARGETS QEMU_TARGETS A single arch name or a list of them (see all names below);
WARNING: line over 80 characters
#86: FILE: scripts/qemu-binfmt-conf.sh:205:
+-s|--systemd: don't write into /proc, generate file(s) for
ERROR: line over 90 characters
#87: FILE: scripts/qemu-binfmt-conf.sh:206:
+ systemd-binfmt.service; environment variable HOST_ARCH
ERROR: line over 90 characters
#88: FILE: scripts/qemu-binfmt-conf.sh:207:
+ allows to override 'uname' to generate configuration files
WARNING: line over 80 characters
#89: FILE: scripts/qemu-binfmt-conf.sh:208:
+ for a different architecture than the current one.
ERROR: line over 90 characters
#139: FILE: scripts/qemu-binfmt-conf.sh:351:
+options=$(getopt -o dsQ:S:e:hcp -l debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
total: 4 errors, 2 warnings, 135 lines checked
Patch 7/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
8/10 Checking commit 9a07973da45d (qemu-binfmt-conf.sh: add option --clear)
WARNING: line over 80 characters
#33: FILE: scripts/qemu-binfmt-conf.sh:199:
+ if empty, configure/clear all known targets;
ERROR: line over 90 characters
#44: FILE: scripts/qemu-binfmt-conf.sh:211:
+-c|--clear: QEMU_CLEAR (yes) remove registered interpreters for target TARGETS;
WARNING: line over 80 characters
#69: FILE: scripts/qemu-binfmt-conf.sh:356:
+ find /proc/sys/fs/binfmt_misc/ -type f -name $names -exec sh -c 'printf %s -1 > {}' \;
ERROR: line over 90 characters
#82: FILE: scripts/qemu-binfmt-conf.sh:372:
+options=$(getopt -o cdsQ:S:e:hcp -l clear,debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
total: 2 errors, 2 warnings, 76 lines checked
Patch 8/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
9/10 Checking commit fd47672add95 (qemu-binfmt-conf.sh: update usage())
ERROR: line over 90 characters
#29: FILE: scripts/qemu-binfmt-conf.sh:204:
+-p|--persistent: QEMU_PERSISTENT (yes) load the interpreter and keep it in memory; all future
ERROR: line over 90 characters
#31: FILE: scripts/qemu-binfmt-conf.sh:206:
+-c|--credential: QEMU_CREDENTIAL (yes) credential and security tokens are calculated according
WARNING: line over 80 characters
#41: FILE: scripts/qemu-binfmt-conf.sh:212:
+-s|--systemd: don't write into /proc, generate file(s) for
ERROR: line over 90 characters
#42: FILE: scripts/qemu-binfmt-conf.sh:213:
+ systemd-binfmt.service; environment variable HOST_ARCH
ERROR: line over 90 characters
#43: FILE: scripts/qemu-binfmt-conf.sh:214:
+ allows to override 'uname' to generate configuration files
WARNING: line over 80 characters
#44: FILE: scripts/qemu-binfmt-conf.sh:215:
+ for a different architecture than the current one.
ERROR: line over 90 characters
#45: FILE: scripts/qemu-binfmt-conf.sh:216:
+-d|--debian: don't write into /proc, generate update-binfmts templates
total: 5 errors, 2 warnings, 45 lines checked
Patch 9/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
10/10 Checking commit 04f54aebb77d (qemu-binfmt-conf.sh: add --test|--dry-run)
WARNING: line over 80 characters
#20: FILE: scripts/qemu-binfmt-conf.sh:199:
+ if empty, configure/clear all known targets.
ERROR: line over 90 characters
#28: FILE: scripts/qemu-binfmt-conf.sh:211:
+-t|--test|--dry-run: QEMU_TEST (yes) test the setup with the provided arguments, but do not
ERROR: line over 90 characters
#58: FILE: scripts/qemu-binfmt-conf.sh:380:
+options=$(getopt -o tcdsQ:S:e:hcp -l test,dry-runclear,debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
total: 2 errors, 1 warnings, 60 lines checked
Patch 10/10 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===
Test command exited with code: 1
The full log is available at
http://patchew.org/logs/20190311101428.GA11@765644dd90e5/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
© 2016 - 2025 Red Hat, Inc.