qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] netmap: support git-submodule build otption


From: Markus Armbruster
Subject: Re: [PATCH] netmap: support git-submodule build otption
Date: Mon, 07 Oct 2019 12:49:58 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux)

Peter Maydell <address@hidden> writes:

D> On Fri, 4 Oct 2019 at 14:03, Giuseppe Lettieri <address@hidden> wrote:
>>
>> From: Giuseppe Lettieri <address@hidden>
>>
>> With this patch, netmap support can be enabled with
>> the following options to the configure script:
>>
>>   --enable-netmap[=system]
>>
>>         Use the host system netmap installation.
>>         Fail if not found.
>>
>>   --enable-netmap=git
>>
>>         clone the official netmap repository on
>>         github (mostly useful for CI)
>>
>> Signed-off-by: Giuseppe Lettieri <address@hidden>
>> ---
>>  .gitmodules |  3 +++
>>  configure   | 64 +++++++++++++++++++++++++++++++++++++++++++++--------
>>  2 files changed, 58 insertions(+), 9 deletions(-)
>>
>> diff --git a/.gitmodules b/.gitmodules
>> index c5c474169d..bf75dbc5e3 100644
>> --- a/.gitmodules
>> +++ b/.gitmodules
>> @@ -58,3 +58,6 @@
>>  [submodule "roms/opensbi"]
>>         path = roms/opensbi
>>         url =   https://git.qemu.org/git/opensbi.git
>> +[submodule "netmap"]
>> +       path = netmap
>> +       url = https://github.com/luigirizzo/netmap.git
>
> Hi; this patch seems to be missing the rationale for why
> we want to do this. New submodules:
>  * should always be on git.qemu.org (we need to mirror them
> in case the original upstream vanishes)
>  * need a strong justification for why they're required
> (ie why we can't just use whatever the system-provided
> version of the library is, or fall back to not providing
> the feature if the library isn't present)
>
> Basically new submodules are a pain so we seek to minimize
> the use of them.

I suggested making it a submodule upthread[*].  Let me try to distill
the conversation into a rationale.  Giuseppe, please correct mistakes.

To make use of QEMU's netmap backend (CONFIG_NETMAP), you have to build
and install netmap software from sources[**].  Which pretty much ensures
developers compile with CONFIG_NETMAP off, and the code rots.

For other dependencies that aren't readily available on common
development hosts (slirp, capstone), we use submodules to avoid such
rot.  If the system provides, we use that, and if it doesn't, we fall
back to the submodule.  This has served us well.

For netmap, falling back to the submodule when the host doesn't provide
tends not to be useful beyond compile-testing.  Because of that, we fall
back only when the user explicitly asks for it by passing
--enable-netmap=git to configure.  CI should do that.



[*] Message-ID: <address@hidden>

[**] FreeBSD hosts may be an exception; I'm not sure.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]