[PATCH v10 0/10] qemu-binfmt-conf.sh

Unai Martinez-Corral posted 10 patches 5 years ago
Only 0 patches received!
There is a newer version of this series
scripts/qemu-binfmt-conf.sh | 221
1 file changed, 138 insertions(+), 83 deletions(-i)
[PATCH v10 0/10] qemu-binfmt-conf.sh
Posted by Unai Martinez-Corral 5 years ago
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 '-r|--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 '-t|--test' 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.

v10

* Split style related commit

v9

* Make style coherent with the dominant pattern

v8:

* Fix typos and address review comments

v7:

* Check that a interpreter exists before trying to remove it.

v6:

* Don't need to use "find".
* Put the ";;" at the same position.
* Set BINFMT_CLEAR to ':', to allow --test to work with --clear.
* Do not show DEBIANDIR and SYSTEMDDIR in the Env-variable column.

Based on:

* [PATCH v5 0/10] qemu-binfmt-conf.sh
   * should have been [PATCH v5 0/9] qemu-binfmt-conf.sh
* [PATCH v4 0/10] qemu-binfmt-conf.sh
* [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)
* scripts/qemu-binfmt-conf.sh: allow clearing of entries

Regards

Unai Martinez-Corral (10):
      qemu-binfmt-conf.sh: enforce style consistency
      qemu-binfmt-conf.sh: enforce safe tests
      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: add --test

scripts/qemu-binfmt-conf.sh | 221
1 file changed, 138 insertions(+), 83 deletions(-i)

Re: [PATCH v10 0/10] qemu-binfmt-conf.sh
Posted by Unai Martinez Corral 4 years, 11 months ago
Hi,

I'd like to request this patchset to be kept on hold. As discussed in
https://github.com/dbhi/qus/issues/4, the current "family-based" logic of
'qemu-binfmt-conf.sh' does not work for aarch64-only hosts. It is assumed
that all aarch64 hosts can natively execute arm or armhf binaries. However,
this is not true anymore. Some high end devices, such as ThunderX or
ThunderX2, are 64-bit only.

It was tested that splitting family 'arm' to 'arm' and 'arm64' does work:
https://github.com/umarcor/qemu/commit/699f972f665bb6dfd05e1c89ff83adb9834a1bb2.
However, such solution breaks backwards compatibility and it will register
unnecessary interpreters on hosts which do support both 32-bit and 64-bit.
Hence, I'd like to add some option for users to tell that a host is 64-bit
only. Alternatively, we might have an automatic test to detect it. I'd be
glad to hear any suggestion.

Regards

Unai

El lun., 9 mar. 2020 a las 20:01, Unai Martinez-Corral
(<unai.martinezcorral@ehui.eus>) escribió:

> 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 '-r|--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 '-t|--test' 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.
>
> v10
>
> * Split style related commit
>
> v9
>
> * Make style coherent with the dominant pattern
>
> v8:
>
> * Fix typos and address review comments
>
> v7:
>
> * Check that a interpreter exists before trying to remove it.
>
> v6:
>
> * Don't need to use "find".
> * Put the ";;" at the same position.
> * Set BINFMT_CLEAR to ':', to allow --test to work with --clear.
> * Do not show DEBIANDIR and SYSTEMDDIR in the Env-variable column.
>
> Based on:
>
> * [PATCH v5 0/10] qemu-binfmt-conf.sh
>    * should have been [PATCH v5 0/9] qemu-binfmt-conf.sh
> * [PATCH v4 0/10] qemu-binfmt-conf.sh
> * [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)
> * scripts/qemu-binfmt-conf.sh: allow clearing of entries
>
> Regards
>
> Unai Martinez-Corral (10):
>       qemu-binfmt-conf.sh: enforce style consistency
>       qemu-binfmt-conf.sh: enforce safe tests
>       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: add --test
>
> scripts/qemu-binfmt-conf.sh | 221
> 1 file changed, 138 insertions(+), 83 deletions(-i)
>